Hier is een plaatje van een venster dat vele controls bevat:

Liberty BASIC kan goed overweg met de gebruikelijke statements
OPEN, CLOSE, PRINT (en optioneel INPUT)
als er gewerkt wordt met GUI (spreek uit "goewie") elementen.
Dat zijn "graphical user interface " elementen. Bijvoorbeeld:
open "My Text Window" for text as #txtWin
print #txtWin, "The fox jumped over the dog."
print #txtWin, "!trapclose [quit]";
wait
[quit]
close #txtWin
end
Het OPEN statement wordt gebruikt om een venster te openen.
Het venster kan commando's via het PRINT statement ontvangen,
en het wordt gesloten met het CLOSE statement.
Het tweede print statement hierboven begin met een uitroeppunt.
Dit is vereist bij het printen van commando's naar tekst-controls
om Liberty BASIC aan te geven dat het hier om een uit te voeren commando
gaat in plaats van een tekst die op of door de control moet worden getoond.
Nieuw voor Liberty BASIC 3:
Het is niet meer noodzakelijk om de PRINT statement te gebruiken
wanneer bij geven van commando's aan een venster of een control.
Het woord "print " is niet verplicht (het is facultatief),
zoals ook de komma na het venster of controlehandvat naar keuze zijn.
Het nu volgende voorbeeld functioneert identiek als bovenstaande versie,
maar het vereist minder typwerk:
open "My Text Window" for text as #txtWin
#txtWin "The fox jumped over the dog."
#txtWin "!trapclose [quit]";
wait
[quit]
close #txtWin
end
Door het statement "! trapclose [quit]" aan een venter mee te geven,
vertellen aan het venster om de event handler
(het sluiten van het venster met het afsluitkruisje of ALT+F4) te gebruiken
om het stukje programma te runnen dat aangegeven wordt door het label [quit].
Dit is belangrijk.
Elk geopend venster moet ook een event handler hebben
om het afsluiten van het venster te detecteren en af te handelen.
De vensters kunnen verschillende andere GUI elementen bevatten. Hier is een voorbeeld:
statictext #dialog.static, "What is your name?", 10, 10, 100, 20
textbox #dialog.tbox, 10, 30, 100, 20
button #dialog.accept, "Accept", [gotIt], UL, 10, 55
open "Name getter" for dialog as #dialog
print #dialog.tbox, "Type your names in here."
print #dialog, "trapclose [quit]"
wait
[gotIt]
print #dialog.tbox, "!contents? name$"
notice "Hi "; name$
wait
[quit]
close #dialog
end
Het "trapclose [quit]" statement van het venster hierboven heft geen uitroepteken nodig.
Dat komt omdat het betrokken venster een dialoogvenster is,
en geen tekst widget waarop teksten op verschijnen.
Daarom accepteert het tekstuele commando's die niet hoeven te starten met een uitroepteken.
De controls die aan dit venster zijn toegevoegd zijn onder andere
een statictext (niet te veranderen label),
een textbox (een te wijzigen tekstveld)
en een drukknop.
Zij staan beschreven vóór het OPEN statement waarmee het dialoog venster wordt geopend.
Het button statement is inclusief de aftakkinglabel [gotIt].
Het stukje code bij [gotIt] is de event handler van de knop. Als op de knop geklikt wordt,
dan genereert dat een event (gebeurtenis) en [gotIt] wordt ingeschakeld.
Bij de code bij [gotIt] aangekomen volgt een commando waarbij in een textbox een string getikt moet worden,
deze string wordt aan de variabele name$ toegewezen.
Het programma lanceert dan een berichtenvenster dat een groet toont aan de gebruiker.
Het venster in het voorbeeld hierboven ontvangt ook een "trapclose" bevel.
Hiermee wordt een handler voor het sluiten (event) van het venster geregeld.
De handler staat na het aftakkinglabel dat bij "trapclose" wordt aangewezen.
Daar aangekomen, kan het venster, indien nodig, misschien navragen bij de gebruiker
of alsnog gesloten dient te worden of niet, bijvoorbeeld:
[quit]
confirm "Quit. Are you sure?"; yesOrNo$
if yesOrNo$ = "yes" then [quitForSure]
wait
[quitForSure]
close #dialog
end
Grafische controls die teksten tonen zullen tekstinvoer accepteren en
direct tonen als die tekst naar ze geprint wordt:
texteditor #main.txtEdit, 3, 3, 250, 300
open "Edit some text, man!" for window as #main
print #main, "trapclose [quit]"
print #main.txtEdit, "C'mon and edit me." ;
print #main.txtEdit, " I dare you!"
print #main.txtEdit, "Or just start typing to replace me."
print #main.txtEdit, "!selectall";
wait
[quit]
close #main
end
De tekst die naar de texteditorcontrol wordt geprint wordt getoond op de control.
Omdat er teksten mee vertoont worden, is het noodzakelijk om
indien niet een tekst getoond moet worden maar
het commando om die tekst dan vooraf te laten gaan door een ! wanneer zij
aan een tekstcontrole worden aangeboden. Zoals dat bij "! selectall" gebeurt.