Voorwoord bij
GENERAL WINDOW AND CONTROL COMMANDS

Merk op dat Liberty BASIC 3 het toestaat dat u door de controls in vensters van
type "window", als wel in vensters van type "dialoog." heen stapt met de TAB toets.
"Met het stappen door de controls" wordt bedoeld dat de controls stuk voor stuk geselecteerd
(het focus komt op hun te staan) zullen worden en de "input nadruk" zullen ontvangen.
Dat gebeurd , beurtelings telkens als de gebruiker de TAB toets raakt.
Wanneer de gebruiker op de TAB toets drukt, dan zal de
volgende vermelde controle geselecteerd worden.

Het dynamisch veranderen van de handle van een venster tijdens de
run time uitvoering kan met het commando MAPHANDLE worden verwezenlijkt.

Dialog Default Button
In een Dialog venster mag u één knop de extensie "default" geven.
Als de gebruiker op de ENTER toets drukt terwijl het dialog venster geselecteerd is,
dan geeft dat hetzelfde effect alsof er op de knop met de extensie "default" werd gedrukt.
De uitvoering van het programma gaat dan verder met de event handler [branchLabel] van die knop.
In het voorbeeld dat hieronder volgt, gaat het programma
verder bij het [okay] label als de gebruiker op de ENTER toets drukt.
button #win.default, "Okay",[okay],UL,200,100
open "Test" for dialog as #win

De "default" extensie werkt alleen bij reguliere knoppen zo als eerder gemeld,
en niet voor bmpbuttons.

Verandering vanaf LB3: Als om het even welke knop focus heeft,
wordt het de default- knop in een dialoogvenster.
Als een andersoortige control de focus heeft,
is de knop die met de extensie ".default" de standaardknop (default button).

cursor
De muis aanwijzer, ook genoemd de cursor kan met het commando CURSOR worden veranderd.

 

General Window and Control commands:

TRAPCLOSE
- Dit commando plaatst een CLOSE event handler voor een venster of een dialoog venster.
Wanneer een gebruiker beslist een venster te sluiten door het afsluitkruisje of ALT+F4 te gebruiken,
dan takt het programma zich af naar een routine die door het "trapclose" bevel wordt gespecificeerd.
Dat commando kan het sluiten bevestigen of één of andere soort schoonmaakbeurt, enz. doen.

Branch Label for closing
'trapclose voorbeeld waarbij gebruik gemaakt wordt van een aftak "label" (etiket)
'De event handler is dus trapclose en de plek van afhandeling is hier bij
'het label [branch]

statictext #example.label, "Now close the window!!", 10, 10, 200, 25
open "Demonstrate trapclose" for window as #example
#example "trapclose [branch]"
wait

[branch]
confirm "Really close?"; answer$
if answer$ = "no" then wait
close #example
end

Subroutine for closing
'trapclose voorbeeld waarbij de event handler (trapclose) een subroutine gebruikt
'voor de afhandeling

statictext #example.label, "Now close the window!!", 10, 10, 200, 25
open "Demonstrate trapclose" for window as #example
#example "trapclose Branch"
wait

sub Branch handle$
confirm "Really close?"; answer$
if answer$ = "no" then wait
close #handle$
end
end sub

trapclose text working in a text window
Om een trapclose commando naar een text venster te sturen, geeft u het bevel vooraf met het ! teken.
Anders wordt het commando trapclose als tekst gezien en verschijnt
op het scherm de tekst "trapclose".

'trapclose example in text window
open "Demonstrate trapclose" for text as #example
#example "!trapclose [branch]"
wait

Zie ook: Trapping the close event

FONT
- Dit commando plaatst de lettertypes voor alle controls in een venster.

'verander het lettertype van alle controls in een venster
'tot courier new 8pt italic

#handle "font courier_new 8 italic"

Ook hier geldt dat u bij gebruik van een text type venster eerst een ! teken voor het woordje font moet plaatsen:

open "Font Test" for text as #handle
#handle "!font courier_new 8 italic"
wait

For more on specifying fonts read How to Specify Fonts

Om de algemene lettertype instelling te ontlopen, kunt u lettertype commando's
naar de individuele controls verzenden. Bekijk de commando lijst van elke individuele control
en vind daar control -specifieke documentatie.
Als een control nieuw teksten zoals een opschrift kan verwerken,
dan moet het font commando vooraf worden gegaan door een ! karakter.

Voorbeelden:

'sommige controls vereisen dus !font
#h.button "!font courier_new 8 italic"
#h.textbox "!font courier_new 8 italic"

'sommige controls hebben geen ! teken vooraf nodig:
#h.graphicbox "font courier_new 8 italic"
#h.radiobutton "font courier_new 8 italic"

RESIZEHANDLER (formaatwijziging)
- Dit commando initieert een event handler die wordt geactiveerd
wanneer de gebruiker een venster van type "window" van omvang doet veranderen.
Dit commando is niet bruikbaar voor dialoog vensters of voor vensters zonder
vergroting - of verkleiningsmogelijkheden (frame.)
Zie ook de REFRESH en LOCATE bevelen hieronder.

'plaats een handler voor het geval dat de gebruiker een venter resized
#handle, "resizehandler [branch]"

or...

'clear the resizing handler
#handle, "resizehandler"

Zie het voorbeeld programma RESIZE.BAS.

LOCATE
- Dit commando is goed bruikbaar als het RESIZEHANDLER commando wordt gebruikt (zie hierboven).
Nadat de gebruiker het venster van maat heeft veranderd en daarbij de resizehandler heeft ingeschakeld,
kunnen we de controls in dat venster ook van formaatwijzigen en herpositioneren met
het locate commando.
Het is noodzakelijk om een ! karakter voorafgaand aan het commando te gebruiken
bij controls als knoppen en tekstvakken die normaliter nieuwe teksten of opschriften
kunnen krijgen en tonen.
Zie ook de commando lijst van de individuele controls voor de control -specifieke documentatie.
Hierna kunnen we het REFRESH commando gebruiken om het hele venster opnieuw te tekenen.

'move and size controls
#handle.ext "locate x y w h"

'move and size buttons, textboxes, etc.
#handle.ext "!locate x y w h"

In het voorbeeld hierboven staan, "x y w h" voor letterlijke waarden.
Indien u variabelen daarvoor in de plaats wilt gebruiken,
dient u ze buiten de aanhalingsteken van het commando te plaatsen. Let daarbij erop dat u
tevens de spaties op de juiste plekken handhaafd.

'literals
print #handle.ext, "locate 12 20 100 24"

'variables
x=12 : y=20 : w=100 : h=24
print #handle.ext, "locate ";x;" ";y;" ";w;" ";h

Zie het voorbeeld in het programma RESIZE.BAS.

REFRESH
- Dit commando is nuttig wanneer u het RESIZEHANDLER commando heeft gebruikt (zie hierboven).
Nadat de gebruiker een formaatwijziging van het venster heeft doorgevoerd waarbij
de resizehandler is gebruikt,kunnen de controls in dat venster ook van formaat gewijzigd
worden en op een andere positie geplaatst worden met het locate commando.
Daarna gebruikt u het REFRESH commando om het nieuwe venster opnieuw te tekenen.

'update van het venster
#handle "refresh"

Zie ook het voorbeeld programma RESIZE.BAS.

SETFOCUS
- Hiermee kunt u input focus plaatsen op een control, of op een venster.
Dit betekent dat alle keyboard input naar de gespecificeerde control
of naar het gespecificeeerde venster gedirigeerd zal worden.
Begin het commando met een ! teken voor alle vensters en controls die in andere
gevallen nieuwe tekst strings kunnen accepteren, zoniet dan zal de betrokken control
het commando simpel weg op het scherm tonen in plaats van te handelen.
Zie ook de individuele topics van de controls voor specifieke documentatie.

'texteditor
#handle.texteditor "!setfocus"

'graphics window
#graph "setfocus"

'button
#handle.button "!setfocus"

'graphicbox
#handle.graphicbox "setfocus"

ENABLE, DISABLE
Deze twee commando's zorgen ervoor dat een control toegankelijk en aktief is,
of dat een control ontoegankelijk en inaktief is. Als een control "disabled" is
dan ziet het er lichtgrijs (in uitgeschakelde lichte kleuren) uit.
Begin het commando met een ! teken voor alle vensters en controls die in andere
gevallen nieuwe tekst strings kunnen accepteren, zoniet dan zal de betrokken control
het commando simpel weg op het scherm tonen in plaats van te handelen.

Zie ook de individuele topics van de controls voor specifieke documentatie.

nomainwin

button #win.bttn, "Hello",[hello],UL,10,70
checkbox #win.cbox, "Goodbye",[quit],[quit],10,160,120,24
menu #win, "&Main","&Enable",[doEnable],_
"&Disable",[doDisable],"E&xit",[quit]
open "Enable and Disable" for window as #win
wait

[quit] close #win:end

[doEnable]
#win.bttn "!Enable"
#win.cbox "Enable"
wait

[doDisable]
#win.bttn "!Disable"
#win.cbox "Disable"
wait

[hello]
wait

SHOW, HIDE
Deze twee commando's zorgen ervoor dat een control zichtbaar of verborgen is
Begin het commando met een ! teken voor alle vensters en controls die in andere
omstandigheden nieuwe tekst strings kunnen accepteren, zoniet dan zal de betrokken control
het commando simpel weg op het scherm tonen in plaats van te handelen.

Zie ook de individuele topics van de controls voor specifieke documentatie.

nomainwin

button #win.bttn, "Hello",[hello],UL,10,70
checkbox #win.cbox, "Goodbye",[quit],[quit],10,160,120,24
menu #win, "&Main","&Show",[doShow],_
"&Hide",[doHide],"E&xit",[quit]

open "Show and Hide" for window as #win

wait

[quit] close #win:end

[doShow]
#win.bttn "!Show"
#win.cbox "Show"
wait

[doHide]
#win.bttn "!Hide"
#win.cbox "Hide"
wait

[hello]
wait