AMIGA-RESISTANCE https://forum.amiga-resistance.info/ |
|
Code Snippets https://forum.amiga-resistance.info/viewtopic.php?f=38&t=1665 |
Seite 1 von 3 |
Autor: | p-OS [ 13 Feb 2008, 16:35 ] |
Betreff des Beitrags: | Code Snippets |
Hallo, mit der Zeit entsteht sicherlich so manche praktische Funktion, die man immer wieder verwenden kann und vielleicht mit anderen teilen möchte. Um diese leichter auffinden zu können, hab ich mir gedacht, wir könnten die Funktionen in diesem Thread sammeln. Fragen/Diskussionen zu einzelnen Funktionen bitte in einem separaten Thread. Möglichst auch keine kompletten Skripte etc. hier reinstellen. |
Autor: | p-OS [ 13 Feb 2008, 16:47 ] |
Betreff des Beitrags: | |
NAME: GetLatestLayerID AUFRUF: id=GetLatestLayerID() FUNKTION: Gibt die ID des zuletzt erzeugten Layers zurück. Wichtig: Es dürfen zwischenzeitlich keine Layerfunktionen aufgerufen worden sein. Am sinnvollsten erfolgt der Aufruf unmittelbar nach dem Erzeugen des Layers. ERGEBNIS: (number) id - ID des Layers Code: Alles auswählen Function GetLatestLayerID() Return( GetAttribute(#DISPLAY, 0, #ATTRLAYERS) ) EndFunction |
Autor: | Murmel [ 29 Nov 2008, 16:38 ] |
Betreff des Beitrags: | |
So um das hier mal aufzufüllen ein kleines Beispiel mit dem Circle-Befehl angepasst von Quickbasic an Hollywood. Code: Alles auswählen /**************************************************************** ** ** ** Name: ** ** Author: ** ** Description: ** ** ** ****************************************************************/ @APPAUTHOR "" @APPCOPYRIGHT "" @APPDESCRIPTION "" @APPTITLE "" @APPVERSION "$VER: 1.0 (1.1.2000)" @VERSION 3,1 @DISPLAY { Title = "Circletest" } ; /// "source code" ; add your source code here ; /// For Ox=0 to 5 For Oc=1 to 21 Circle(120+Ox, 10, 11*Oc, #WHITE) Next Next For i = 1 to 255 Circle(120, 10, i, #BLUE) Next ; /// "main loop" Repeat WaitEvent Forever ; /// |
Autor: | Clyde [ 29 Nov 2008, 17:29 ] |
Betreff des Beitrags: | |
Wenn Du jetzt noch eine Screenshot dazupacken könntest (am besten Deinen Beitrag editieren) und vielleicht auch den Quelltext in die Code-Tags (siehe oben zwischen Quote und List) packen könntest ... Es wäre perfekt ... |
Autor: | HelmutH [ 04 Dez 2008, 15:50 ] |
Betreff des Beitrags: | |
Hi Murmel Hab mir mal erlaubt dein Beispiel mit den "Code Tags" zu versehen, weils so besser erkennbar ist, was zum Quellcode gehört. Fänds auch prima, wenn du da noch einen Screenshot reinstellen könntest. |
Autor: | Murmel [ 04 Dez 2008, 16:51 ] | |
Betreff des Beitrags: | ||
Also ich wollte eigendlich nicht in den Thread posten weil hier sollten ja eigendlich Code Schnipsel stehen Nen Screenshot muss ich irgendwo hochladen, und das in der Gallery zwischen den Hardwaresachen zu platzieren fand ich etwas unpassend, weil ja nicht jeder an Hollywood interessiert ist. Und ich war bisher zu Faul ein Ftpprogamm unter MorphOS auf meinem Server einzurichten. |
Autor: | Murmel [ 18 Dez 2008, 23:04 ] |
Betreff des Beitrags: | Mal wieder nen sinnloses Circle-Demo ;) |
Ist mal wieder ne Quickbasic Anpassung.in der Function col() werden die 16 Farben definiert (qb 0-15) Vieleicht hat ja jemand ne Idee wie man elegant noch mehr Farben reinbringt Code: Alles auswählen /**************************************************************** ** ** ** Name: ** ** Author: ** ** Description: ** ** ** ****************************************************************/ @APPAUTHOR "" @APPCOPYRIGHT "" @APPDESCRIPTION "" @APPTITLE "" @APPVERSION "$VER: 1.0 (1.1.2000)" @VERSION 3,1 @DISPLAY { Title = "Circledemo", X = #CENTER, Y = #CENTER, Width = 1024, Height = 768, color = #BLACK} ; /// "source code" ; add your source code here Function col() Farbe = Mod (X ,15) if Farbe = 0 Then FARBE = #BLACK if Farbe = 1 Then FARBE = #BLUE if Farbe = 2 Then FARBE = #GREEN If Farbe = 3 Then FARBE = $FF00FF if Farbe = 4 Then FARBE = #RED if Farbe = 5 Then FARBE = $800080 if Farbe = 6 Then FARBE = #MAROON if Farbe = 7 Then FARBE = #WHITE If Farbe = 8 Then FARBE = #GRAY if Farbe = 9 Then FARBE = #AQUA if Farbe = 10 Then FARBE = #LIME if Farbe = 11 Then FARBE = $FF05AF if Farbe = 12 Then FARBE = $FF0305 if Farbe = 13 Then FARBE = #FUCHSIA if Farbe = 14 Then FARBE = #YELLOW if Farbe = 15 Then FARBE = $AFAFAF EndFunction Cls FOR X = 1 TO 555 col Circle(X, X, X, FARBE) col Circle(300-X, X ,X, FARBE) col Circle (300-X, 200-X, X, FARBE) col Circle (X, 200-X ,X ,FARBE) Circle (X, X, X, #BLACK) Circle (300-X, X, X, #BLACK) Circle (300-X, 200-X, X, #BLACK) Circle (X, 200-X, X, #BLACK) Next ; /// ; /// "main loop" Repeat WaitEvent Forever ; /// |
Autor: | Tipsi [ 15 Mär 2009, 00:05 ] |
Betreff des Beitrags: | Re: Code Snippets |
NAME p_GetObjectEnable(Objekt) -- Ermittelt, ob ein ScuiObjekt anwählbar ist oder nicht BENUTZUNG var = p_GetObjectEnable(Objekt) FUNKTION Diese Funktion ermittelt, ob das in Objekt übergebene ScuiObjekt anwählbar (#IFO_ENABLED) oder blockiert/schattiert/geisterhaft (#IFO_DISABLED) ist und gibt den Wert On oder Off zurück. EINGABEWERTE Objekt Ein gültiger Name für ein ScuiLibObjekt, welches im Programmcode deklariert wurde. RÜCKGABEWERTE var "On" für #IFO_ENABLED (anwählbar) "Off" für #IFO_DISABLED (blockiert/schattiert/geisterhaft) VORRAUSSETZUNG Hollywood Version 3 oder höher ScuiLib 0.5 beta oder höher FUNKTIONSCODE Ich bin einfach zu faul, um im Code bei On und Off immer die Anführungs- und Schlusszeichen zu setzen. Code: Alles auswählen On = "On" Off = "Off" Function p_GetObjectEnable(Objekt) Local ObjektID = scui.GetIFOID(Objekt) Local Obj=scui.Get(ObjektID) If Obj.enabled = #IFO_ENABLED Return(On) ElseIf Obj.enabled = #IFO_DISABLED Return(Off) EndIf EndFunction Code: Alles auswählen If p_GetObjectEnable("Schalter") = On Print("anwählbar") Else Print("blockiert/schattiert/geisterhaft") EndIf http://www.amiga-resistance.info/phpbb3 ... =38&t=2425 |
Autor: | Tipsi [ 15 Mär 2009, 00:11 ] |
Betreff des Beitrags: | Re: Code Snippets |
NAME p_SetObjectEnable -- Setzt das ScuiObjekt auf anwählbar oder nicht BENUTZUNG p_SetObjectEnable(Objekt, Enable) FUNKTION Diese Funktion setzt das in Objekt übergebene ScuiObjekt auf anwählbar (#IFO_ENABLED) oder blockiert/schattiert/geisterhaft (#IFO_DISABLED). EINGABEWERTE Objekt Ein gültiger Name für ein ScuiLibObjekt, welches im Programmcode deklariert wurde. Enable "On" für #IFO_ENABLED (anwählbar) "Off" für #IFO_DISABLED (blockiert/schattiert/geisterhaft) VORRAUSSETZUNG Hollywood Version 3 oder höher ScuiLib 0.5 beta oder höher FUNKTIONSCODE Bin immer noch zu faul, um im Code bei On und Off die Anführungs- und Schlusszeichen zu setzen. Code: Alles auswählen On = "On" Off = "Off" Function p_SetObjectEnable(Objekt,Enable) If Enable=On scui.IFO_Enable(Objekt, 1) ElseIf Enable=Off scui.IFO_Disable(Objekt, 1) EndIf EndFunction Code: Alles auswählen p_SetObjectEnable("Schalter", On) Meinungen und Komentarte bitte hier äussern: http://www.amiga-resistance.info/phpbb3 ... =38&t=2425 |
Autor: | Tipsi [ 15 Mär 2009, 01:11 ] |
Betreff des Beitrags: | Re: Code Snippets |
NAME p_GetObjectVisible(Objekt) -- Ermittelt, ob ein ScuiObjekt unsicht- oder sichtbar ist BENUTZUNG var = p_GetObjectVisible(Objekt) FUNKTION Diese Funktion ermittelt, ob das in Objekt übergebene ScuiObjekt sichtbar (#IFO_VISIBLE) oder unsichtbar (#IFO_HIDDEN) ist und gibt den Wert On oder Off zu- rück. EINGABEWERTE Objekt Ein gültiger Name für ein ScuiLibObjekt, welches im Programmcode deklariert wurde. RÜCKGABEWERTE var "On" für #IFO_VISIBLE (sichtbar) "Off" für #IFO_HIDDEN (unsichtbar) VORRAUSSETZUNG Hollywood Version 3 oder höher ScuiLib 0.5 beta oder höher FUNKTIONSCODE ... zu faul, um im Code bei On und Off die Anführungs-/Schlusszeichen zu setzen Code: Alles auswählen On = "On" Off = "Off" Function p_GetObjectVisible(Objekt) Local ObjektID = scui.GetIFOID(Objekt) Local Obj=scui.Get(ObjektID) If Obj.visible = #IFO_VISIBLE Return(On) ElseIf Obj.visible = #IFO_HIDDEN Return(Off) EndIf EndFunction Code: Alles auswählen If p_GetObjectEnable("Schalter") = On Print("sichtbar") Else Print("unsichtbar") EndIf http://www.amiga-resistance.info/phpbb3 ... =38&t=2425 |
Autor: | Tipsi [ 15 Mär 2009, 01:19 ] |
Betreff des Beitrags: | Re: Code Snippets |
NAME p_SetObjectVisible -- Setzt das ScuiObjekt auf unsicht- oder sichtbar BENUTZUNG p_SetObjectVisible(Objekt, Visible) FUNKTION Diese Funktion setzt das in Objekt übergebene ScuiObjekt auf unsichtbar (#IFO_HIDDEN) oder sichtbar (#IFO_VISIBLE). EINGABEWERTE Objekt Ein gültiger Name für ein ScuiLibObjekt, welches im Programmcode deklariert wurde. Visible "On" für #IFO_VISIBLE (sichtbar) "Off" für #IFO_HIDDEN (unsichtbar) VORRAUSSETZUNG Hollywood Version 3 oder höher ScuiLib 0.5 beta oder höher FUNKTIONSCODE ...zu faul, um... Code: Alles auswählen On = "On" Off = "Off" Function p_SetObjectVisible(Objekt,Visible) If Visible=On scui.Set(Objekt, { Visible = #IFO_VISIBLE }, 1 ) ElseIf Visible=Off scui.Set(Objekt, { Visible = #IFO_HIDDEN } ) EndIf EndFunction Code: Alles auswählen p_SetObjectVisible("Schalter", On) Meinungen und Komentarte bitte hier äussern: http://www.amiga-resistance.info/phpbb3 ... =38&t=2425 |
Autor: | Tipsi [ 15 Mär 2009, 01:26 ] |
Betreff des Beitrags: | Re: Code Snippets |
NAME p_GetObjectState(Objekt) -- Ermittelt die Position von einem SimpleScroller oder Switch BENUTZUNG var = p_GetObjectState(Objekt) FUNKTION Diese Funktion ermittelt, ob das in Objekt übergebene ScuiSwitchObjekt gedrückt (value=1) ist oder nicht (value=0) und gibt dementsprechend On oder Off zurück. Bei ei- nem SimpleScroller wird die Position als Ganzzahl zurückgegeben. EINGABEWERTE Objekt Ein gültiger Name für ein ScuiLibObjekt (nur Switch oder Simplescroller), welches im Programmcode deklariert wurde. RÜCKGABEWERTE var (bei Switch) "On" für value=1 (gedrückt) "Off" für value=0 (nicht gedrückt) var (bei SimpleScroller) Ganzahl im definierten Bereich vom SimpleScroller angefangen bei 1. VORRAUSSETZUNG Hollywood Version 3 oder höher ScuiLib 0.5 beta oder höher FUNKTIONSCODE ...faul... Code: Alles auswählen On = "On" Off = "Off" Function p_GetObjectState(Objekt) Local ObjektID = scui.GetIFOID(Objekt) Local Obj=scui.Get(ObjektID) If Obj.oClass = #IFOCLASS_SWITCH If Obj.value=0 Return(Off) ElseIf Obj.value=1 Return(On) EndIf ElseIf Obj.oClass = #IFOCLASS_SIMPLESCROLLER Return(Obj.value) EndIf EndFunction Code: Alles auswählen If p_GetObjectState("Schalter") = On Print("gedrückt") Else Print("nicht gedrückt") EndIf Meinungen und Komentarte bitte hier äussern: http://www.amiga-resistance.info/phpbb3 ... =38&t=2425 |
Autor: | Tipsi [ 15 Mär 2009, 01:31 ] |
Betreff des Beitrags: | Re: Code Snippets |
NAME p_SetObjectState -- Setzt ein Switch auf gedrückt/nicht gedrückt, verschiebt den Knopf bei einem SimpleScroller oder setzt eine Stringbox auf Eingabe oder wählt sie ab. BENUTZUNG p_SetObjectState(Objekt, Status) FUNKTION Diese Funktion setzt das in Objekt übergebener Switch auf gedrückt (value=1) oder nicht (value=0). Bei einem SimpleScroller wird der Knopf auf die angegebene Position verschoben. Bitte beachte, dass bei einem Switch oder SimpleScroller nur der optische Zustand geändert wird. Es werden keine Funktionen wie OnChanged, OnDrag oder OnChange ausgeführt. Eine Stringbox wird auf Eingabe gesetzt oder abgewählt. Hier wird aber, im Gegensatz zu den anderen Objekten, beim setzen auf Eingabe die Funktion OnClick und beim Abwählen die Funktionen OnExit oder OnChanged ausgeführt. EINGABEWERTE Objekt Ein gültiger Name für ein ScuiLibObjekt, welches im Programmcode deklariert wurde. Status (Switch) "On" für value=1 (gedrückt) "Off" für value=0 (nicht gedrückt) Status (SimpleScroller) Ganzzahl von 1 bis im Programm festgelegt Status (Stringbox) "On" für Eingabe und Ausführen der Funktion OnClick "Off" für Abwählen und Ausführen der Funktion OnExit oder OnChanged VORRAUSSETZUNG Hollywood Version 3 oder höher ScuiLib 0.5 beta oder höher FUNKTIONSCODE Ich bin einfach zu faul, um im Code bei On und Off die Anführungs- und Schlusszeichen zu setzen Code: Alles auswählen On = "On" Off = "Off" Function p_SetObjectState(Objekt,Status) Local ObjektID = scui.GetIFOID(Objekt) Local Obj=scui.Get(ObjektID) If Obj.oClass = #IFOCLASS_STRINGBOX If Status=On scui.HandleObject({id = ObjektID , action = "OnMouseOver"}) scui.HandleObject({id = ObjektID , action = "OnMouseDown"}) scui.HandleObject({id = ObjektID , action = "OnMouseUp"}) ElseIf Status=Off If scui.Keyboard.Mode = #KEYBOARD_INPUTMODE And scui.Keyboard.ActiveStringBox = ObjektID scui.Keyboard_Handler( { key = Chr(10), action = "OnKeyDown" } ) EndIf EndIf ElseIf Obj.oClass = #IFOCLASS_SWITCH If Status=On scui.Set(Objekt,{ Value = 1 }, 1 ) ElseIf Status=Off scui.Set(Objekt,{ Value = 0 }, 1 ) EndIf ElseIf Obj.oClass = #IFOCLASS_SIMPLESCROLLER scui.Set(Objekt, {value = Status}, 1) EndIf EndFunction Code: Alles auswählen p_SetObjectState("Schalter", On) Code: Alles auswählen p_SetObjectState("Schiebebalken", 5) Schritte verschoben). Meinungen und Komentarte bitte hier äussern: http://www.amiga-resistance.info/phpbb3 ... =38&t=2425 |
Autor: | Murmel [ 15 Sep 2009, 22:13 ] | ||
Betreff des Beitrags: | Re: Code Snippets | ||
Also ich poste hier mal eine kleine Systemanzeige. Leider wurde der Fehler mit der Partitionsgrösse in Hw4.0 nicht behoben. Aber vieleicht kanns ja mal einer testen ob bei ihm die Parti grösse stimmt. Code: Alles auswählen /**************************************************************** ** ** ** Name: ** ** Author: ** ** Description: ** ** ** ****************************************************************/ @APPAUTHOR "" @APPCOPYRIGHT "" @APPDESCRIPTION "" @APPTITLE "" @APPVERSION "$VER: 1.0 (1.1.2000)" @VERSION 2,0 @DISPLAY {Width = 400, Height = 250, Title = "Systemwatch"} ; add your source code here ;;; "source code" SetFont("times.font",18) D=GetDateNum(#DATEDAY) DM=GetDateNum(#DATEMONTH) DT=GetDateNum(#DATETIME) DY=GetDateNum(#DATEYEAR) time$=GetTime() date$=GetDate() day$=GetWeekday() NPrint ("Heutiges Datum:", D,".", DM ,".", DY) NPrint ("Heute ist ein:", day$) NPrint ("Systemzeit:", time$, "Uhr") t = GetVersion() If t.platform = "Win32" Then Error("Windows benutzt man doch nicht Oo xD !") NPrint ("Betriebssystem:", t.platform) chip=GetMemoryInfo(#CHIPMEMORY) fast=GetMemoryInfo(#FASTMEMORY) chip=Int(chip/1000) chip=Int(chip/1024) fast=Int(fast/1000) fast=Int(fast/1024) NPrint("Chipram:", chip, "MB") NPrint("Fastram:", fast, "MB") name$=GetVolumeName("sys:") space=GetVolumeInfo(name$ ,#FREESPACE) space=int(space/1000) space=int(space/1024) space2=GetVolumeInfo(name$ ,#USEDSPACE) space2=int(space2/1000) space2=int(space2/1024) NPrint(name$, space, "freier Speicher auf SYS:!") NPrint(name$, space2, "belegter Speicher auf SYS:!") ;;; ;;; "main loop" Repeat WaitEvent Forever ;;;
|
Autor: | McFly [ 16 Sep 2009, 07:10 ] |
Betreff des Beitrags: | Re: Code Snippets |
@Murmel moin, habe Dein Script mal bei mir angetestet, hier kommt ein Requester mit folgender Meldung: "Es wurde ein String erwartet!" Datei: Test.hws (aktuelle Zeile:9) Kann es sein, weil ich "nur" Hollywood 3.0 habe? Sollte nicht oder? Habe den Text von Dir so wie er ist kopiert. |
Seite 1 von 3 | Alle Zeiten sind UTC |
Powered by phpBB® Forum Software © phpBB Limited Deutsche Übersetzung durch phpBB.de |