Integrierter Form-Designer

Die PureBasic IDE hat einen sehr leistungsfähigen integrierten Form-Designer (auch "Formular-Designer"), welcher einfach die Gestaltung von Fenstern und das Anordnen von Gadgets darauf ermöglicht. Er unterstützt nahezu alle nativen PureBasic Gadgets, Menüs und sogar Statusleisten. Eine Form-Datei (auch "Formular-Datei") ist eine reguläre PureBasic-Datei, welche somit einfach verändert werden kann, ohne den Form-Designer zu öffnen. Der Code-Parser ist nicht der Gleiche, wie er vom Compiler verwendet wird, und unterstützt daher nicht alle Funktionen - wenn Sie daher manuelle Änderungen an einer Form-Datei vornehmen, müssen diese grundlegend bleiben.

Inhalt des "Form" Menüs:

Neues Formular
Erstellt ein neues leeres Formular. Dies bringt automatisch die Form-Werkzeugleiste in den Vordergrund.

Ansicht umschalten (Code/Design)
Ändert die Formular-Ansicht, wechselt vom Design-Modus in die Code-Ansicht. Ein Formular wird aus Quellcode erstellt - wenn daher eine Änderung direkt in der Code-Ansicht erfolgt, so wird diese auch visuell wiedergespiegelt.

Objekt duplizieren
Dupliziert das aktuell ausgewählte Objekt.

Bild-Manager



Zeigt alle Bilder an, die aktuell vom Formular verwendet werden. Das Bild und sein Pfad können hier einfach verändert werden.

Form-Designleiste

Diese Werkzeugleiste listet alle verfügbaren Gadgets auf. Wählen Sie eins aus, und zeichnen Sie direkt auf dem Formular die benötigte Größe. Wenn ein Gadget auf dem Formular ausgewählt wird, dann werden seine Eigenschaften auf dieser Leiste angezeigt und können auch hier verändert werden.

Verwendung des Form-Designers in echten Projekten

Der Form-Designer wurde erschaffen, um modulare Formulare und deren einfache Wartung zu ermöglichen. Jedes Formular muss seine eigene Datei haben. Es können sich keine zwei Formulare in der gleichen Datei befinden (mit anderen Worten, es sollten sich niemals zwei OpenWindow() in der gleichen Datei befinden). Jedem Gadget kann eine Ereignis-Prozedur zugewiesen werden, welche automatisch in der Ereignisschleife behandelt werden. Die Ereignis-Prozeduren müssen irgendwo im Quellcode definiert werden. Jede Formular-Datei sollte mit der '.pbf' Endung benannt werden, damit sie von der IDE richtig erkannt werden. Formular-Dateien können auch zu einem Projekt hinzugefügt werden.

Um zum Beispiel ein Programm, welches zwei Fenster besitzt, zu erstellen, müssen wir zwei Formular-Dateien und eine Haupt-Datei erstellen. Die Verzeichnisstruktur könnte wie folgt aussehen:
  Main.pb        ; Die Haupt-PureBasic-Datei, welche die zwei Formular-Dateien einbindet und die Ereignisse definiert.
  MainWindow.pbf ; Das Hauptfenster.
  DateWindow.pbf ; Ein anderes Fenster.
Wenn wir davon ausgehen, dass MainWindow.pbf über zwei Tasten ('OK' und 'Cancel') verfügt und DateWindow.pbf ein CalendarGadget besitzt, dann würde die Haupt-Datei wie folgt aussehen (die Haupt-Datei wird nicht über den Form-Designer verwaltet und muss manuell geschrieben werden):
  XIncludeFile "MainWindow.pbf" ; Einbinden der ersten Fenster-Definition
  XIncludeFile "DateWindow.pbf" ; Einbinden der zweiten Fenster-Definition
  
  OpenMainWindow() ; Öffnet das erste Fenster. Dieser Prozedurname ist immer 'Open' gefolgt vom Fensternamen.
  OpenDateWindow() ; Öffnet das zweite Fenster.
  
  ; Die Ereignis-Prozedur, wie diese in der Eigenschaft 'Ereignis-Prozedur' jedes Gadgets definiert wurde.
  Procedure OkButtonEvent(EventType)
    Debug "OkButton event"
  EndProcedure
  
  Procedure CancelButtonEvent(EventType)
    Debug "CancelButton event"
  EndProcedure
  
  Procedure TrainCalendarEvent(EventType)
    Debug "TrainCalendar event"
  EndProcedure
  
  ; Die übliche Haupt-Ereignisschleife, die einzige Änderung ist der automatische Aufruf der
  ; für jedes Fenster generierten Ereignis-Prozedur.
  Repeat
    Event = WaitWindowEvent()
    
    Select EventWindow()
      Case MainWindow
        MainWindow_Events(Event) ; Dieser Prozedurname ist immer der Fenstername gefolgt von '_Events'
        
      Case DateWindow
        DateWindow_Events(Event)
        
    EndSelect
    
  Until Event = #PB_Event_CloseWindow ; Beenden, wenn eines der Fenster geschlossen wird.
Wie man sieht, ist es einfach, visuell entworfene Formulare in ein Programm zu integrieren. In der Tat ist es auch weiterhin möglich, Fenster manuell zu erstellen, oder beides zu mischen. Um die komplette Kontrolle über den generierten Code zu haben, wechseln Sie einfach die Ansicht in den Code-Modus und überprüfen diesen.