Vorweg:
Variablen sind ausgedachte Worte, in denen Zahlen oder Buchstabenwerte enthalten sein können.
Um eine Variable festzulegen, braucht man nur das Wort schreiben, wie die Varible heißen soll und ihr einen Wert zuzuweisen.
Code: Alles auswählen
MeineVariable=3
VariablenNamen müssen immer zusammengeschrieben sein und dürfen Zahlen nur am Ende enthalten. Keine Sonderzeichen für die Namensgebung. Das Leerzeichen wäre ein Sonderzeichen.
Ebenso sind Rechenzeichen Sonderzeichen. Punkte und andere Dinge sind auch Tabu, ebenso Umlaute und das Esszett.
Die Groß- und Kleinschreibung spielt in PureBasic keine Rolle.
Sollte für die Übersichtlichkeit aber immer gleichen Regeln folgen.
Eine Bedingung wird mit IF abgefangen und hört mit ENDIF wieder auf.
Bedingungen sind logische Abfragen, die zutreffen oder eben nicht.
Zum Beispiel:
Ist in Variable mit dem VariablenNamen "MeineVariable" der Wert 3 enthalten? Ist das wahr?
Code: Alles auswählen
IF MeineVariable=3
; wahr
ELSE
; unwahr, falsch
ENDIF
REPEAT (Wiederhole)
UNTIL (Bis Bedingung wahr ist ...)
Kleines Malprogramm.
Code: Alles auswählen
If OpenWindow(0,0,0,450,450,"Mein Malprogramm") And CreateGadgetList(WindowID(0))
; öffnet Fenster mit der Nummer "0"
CreateImage(0,400,400)
ImageGadget(0,0,0,400,400,ImageID(0)) ; Erzeugt Gadget mit der Nummer "0", welches das Bild mit Nummer "0"
; Die Nummern von Fenstern, Gadgets und Bildern sind unterschiedlich, auch wenn sie alle "0" sind
; ImageID, WindowID, GadgetID und andere ID()-Befehle geben dir diese Werte zurück ... ist erstmal weniger von Bedeutung
Repeat ; Wiederhole
Event=WaitWindowEvent() ; Wartet bis etwas passiert im Fenster
If Event=#PB_Event_CloseWindow ; Wenn das Fenster geschlossen wird ...
; dann
Quit=1 ; Variblae Quit wird auf eins gesetzt, damit ist es ungleich NULL
; Quit war vorher =0, alle neuen Variablen sind mit NULL in PureBasic gefüllt
Else
; ansonsten
If Event=#PB_Event_Gadget ; Wenn ein Gadget betroffen ist
GadgetNr=EventGadget() ; Ermittelt, welches Gadget betroffen ist
If GadgetNr=0 ; Wenn das Gadget mit der Nummer "0" zum Beispiel gedrückt wurde
If EventType()=#PB_EventType_LeftClick ; wenn linke/erste Maustaste gedrückt wurde
Farbe=RGB(255,0,0) ; rot
Else
Farbe=RGB(0,255,0) ; grün
EndIf
StartDrawing(ImageOutput(0))
Circle(WindowMouseX(0),WindowMouseY(0),20,Farbe) ; zeichnet Kreis, Farbe wird oben festgelegt
StopDrawing()
SetGadgetState(0,ImageID(0)) ; Bild muss auf dem Gadget aktualisiert werden
EndIf
EndIf
EndIf
Until Quit ; bis Variable Quit einen Wert ungleich NULL enthält
EndIf
Zwei Knöpfe und ein leeres (schwarzes) Bild im Fenster.
Code: Alles auswählen
EnableExplicit ; Passt auf, dass alle Variablen deklariert werden, also jede Variable wird exakt bestimmt
CreateImage(0,400,400) ; erstellt Bild-Nr. "0" mit 400 Pixel breit und hoch
Procedure createGadgets() ; Erstell einen Befehl, der andere Befehle abarbeitet.
; Die folgenden Befehle werden erst ausgeführt, wenn createGadgets() aufgerufen wird (siehe weiter unten)
ImageGadget(0,5,5,400,400,ImageID(0)) ; Erstellt einen Gadget (Schaltfläche) wo ein BildNr. "0" drauf ist.
; zwei Knöpfe mit Text
ButtonGadget(1,410,20,100,20,"Hallo")
ButtonGadget(2,410,60,100,20,"Basic")
; Editor-Feld / Textfeld (weiß, leer)
EditorGadget(3,410,100,210,200)
SetGadgetColor(3, #PB_Gadget_BackColor, RGB(255,255,0)); Farbe der Schaltfläche Nr. 3 (Editorfeld) wird gelb
; Wenn du diese Zeile mit einem Semikolon nicht ausführen lässt, bleibt dein Editor-Feld weiß
; SetGadgetColor(3, #PB_Gadget_BackColor, RGB(255,255,0))
EndProcedure
If OpenWindow(0,0,0,630,450,"FL Bild",#PB_Window_ScreenCentered | #PB_Window_SystemMenu) And CreateGadgetList(WindowID(0))
createGadgets() ; Springt oben in den eigenen Befehl, der die Schaltflächen erstellt.
; Wenn du vor diesen Befehl ein Semikolon setzt, wirst du keine Schaltflächen sehen
; createGadgets()
Define Event.l, Quit, GadgetNr ; Define sagt nur, dass hier Varibalen folgen, alle sind vom Typ Longint (32 Bit Ganzzahl)
Repeat ; Wiederholen
Event=WaitWindowEvent()
If Event=16
Quit=1
ElseIf Event=#PB_Event_Gadget ; Wenn eine Schaltfläche ... ein Ereignis auslöst ... zum Beispiel gedrückt wurde
GadgetNr=EventGadget() ; Die Variable GadgetNr beinhaltet nun die Nummer der Schaltfläche, welche ein Ereignis ausgelöst hatte
If GadgetNr=1 ; Wenn Schaltfläche Nr. 1 (Knopf mit "Hallo") gedrückt wurde ... dann
AddGadgetItem(3,0,"Der Nutzer hat auf Hallo gedrückt") ; Hier wird ein Text auf das Editor-Feld geschrieben
; AddGadgetItem fügt weitere Textfelder dem Gadget mit Nr. 3 hinzu. Achtung! Nicht alle Gadgets unterstützen diesen Befehl!
; Einfach mal bei AddGadgetItem() in der Hilfe nach schauen. Auf den Befehl mit dem Cursor und dann [F1]
ElseIf GadgetNr=2 ; Ansonsten wenn Schaltfläche Nr. 2 (Knopf mit "Basic") gedrückt wurde ... dann
AddGadgetItem(3,0,"Der Nutzer hat auf "+GetGadgetText(2)+" gedrückt")
; Hier wird ein Text auf das Editor-Feld geschrieben
; Der Text ist zusammengesetzt aus "Der Nutzer hat auf " und dem Text, der auf dem Kopf Nr. 2 steht ... und am Ende steht " gedrückt"
EndIf
EndIf
Until Quit ; Bis Ende
CloseWindow(0) ; Schließt Fenster. Wenn dieser Befehl fehlt, wird es trotzdem geschlossen
EndIf