| AMIGA-RESISTANCE https://forum.amiga-resistance.info/ |
|
| Code Snippets https://forum.amiga-resistance.info/viewtopic.php?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 |
|