Alte Liebe rostet nie, Teil 2
Das wird eine weiterer Post zu PureBasic. Also ein Follow-up zu https://www.tergolape.at/2026/06/alte-liebe-rostet-nie.
Grundlegender Programmaufbau
Ich möchte in paar Programmbeispiele für sich selbst sprechen lassen. Ich bin überzeugt, dass jeder, der auch nur ein klein wenig Programmiererfahrung hat, der Idee ganz leicht folgen kann. Simple Beispiele auf der Kommandozeile wären gar nicht anschaulich, daher mache ich mich gleich an eine grafische Anwendung.

So soll das Beispiel aussehen: Ein Fenster, ein Text und eine Schaltfläche. Die Schaltfläche soll auf einen "Klick" reagieren und das Fenster (und damit das ganze Programm) soll sich schließen, wenn im Rahmen "×" geklickt wird.

Ja. Ich habe vergessen unter Linux einen Screenshot zu machen. :(

Und das ist der dazugehörende Code:
Enumeration
#MAINWIN
#BUTTON
#LABEL
EndEnumeration
#WIN_WIDTH = 640
#WIN_HEIGHT = 480
OpenWindow(#MAINWIN, #PB_Any, #PB_Any, #WIN_WIDTH, #WIN_HEIGHT, "Demo", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
TextGadget(#LABEL, 10, 18, 120, 40, "Drücke hier: ")
ButtonGadget(#BUTTON, 130, 10, 120, 40, "Klick mich!")
Define appIsRunning = #True
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
appIsRunning = #False
Case #PB_Event_Gadget
If (EventGadget() = #BUTTON)
MessageRequester("Schaltfläche gedrückt!", "Hallo Welt!", #PB_MessageRequester_Info)
EndIf
EndSelect
Until appIsRunning = #False
Eine einzige Quellcode-Datei und 29 Zeilen für ein funktionierendes Fenster mit ein klein wenig Logik. Cool, oder? Keine tief verschachtelten Projektbäume, Setup-, Paketier- und Buildbefehlsketten. Kein langes warten.
Und was ich auch noch gerne mag: Man kann in der IDE auch in einer unbenannten Datei arbeiten, ohne speichern zu müssen. PB macht selbst eine temporäre Datei und kompiliiert diese dann. Das ist sehr nützlich, wenn man schnell etwas ausprobieren möchte.
Wer jetzt Blut geleckt hat, kann auf www.purebasic.com die Demo für sein System herunterladen. Es kommen unzählige Beispiele mit. Wer in der IDE mehr Info zu einem Befehl haben möchte, drückt F1.
Man kann natürlich auch die Hilfe vorab auch online lesen.
Oberflächen malen
Wer Code nicht von Hand schreiben will oder einfach gerne grafisch arbeitet, möchte wahrscheinlich ein Werkzeug, um Oberflächen mit der Maus zu entwerfen. Kein Problem: die PureBasic IDE bringt einen Form Designer mit, der dann Code generiert.

Es gibt zudem noch weitere Werkzeuge mit unterschiedlichen Schwerpunkten. IceDesign ist eines davon. SpikeUI ist "the new kid on the block" und verfolgt einen anderen Ansatz. Beide Programme sind für kleines Geld erhältlich und persönlich unterstütze ich die Weiterentwicklungen gerne.
Für alle GUI-Builder gilt: man muss schon eine Idee haben, wie der generierte Code strukturiert ist und funktioniert. Und dann muss man auch mit Bedacht und Disziplin seinen eigenen Code hineinsetzen. Sonst wird das schnell zum Spaghetti-Monster. Aber das gilt für alle Programmiersprachen, nicht nur für PureBasic.
IceDesign
Das ist ein FormDesigner/UI-Builder im klassischen Sinn. Das Programm läuft nur unter Windows, erstellt aber Code, der auch größtenteils unter MacOS und Linux läuft.
Hier ein IceDesign Screenshot.

Der generierte Code der GUI aus dem Bild ist mit Leerzeilen und Kommentaren nur 197 Zeilen lang, die kompilierte Exe hat 404 KB (das Binary unter Linux 319 KB, ist aber von GTK-Libs abhängig).



Zugegeben, es fehlt noch die Programmlogik. Aber 404 KB für eine grafische Anwendung. Wo bekommt man das sonst noch so hin? Nim erzeugt auch sehr kleine Binaries, hat aber derzeit keine Standard-GUI-Bibliothek, die auf den großen Systemen läuft. FreePascal hat die LCL, aber die Binaries sind größer und die Sprache ist für mich weniger zugänglich.
IceDesign glänzt für mich vor allem bei größeren Programmen mit vielen Elementen. Da ist die Verwaltung (in einer eigenene Datei) einfach besser für mich als mit dem eingebauten FormDesigner. Zudem gibt es mehr Möglichkeiten bei Layout, Ausrichtung, (automatische) Anpassungen etc.
Wer Interesse an IceDesign hat, schaut hier nach: https://www.purebasic.fr/english/viewtopic.php?t=74711 Dort findet man eine Feature-Liste und auch eine Demo.
Kaufen kann man das Programm via Gumroad: https://chrisrfr.gumroad.com/l/TnEVD