RESIZEHANDLER [branch]
or
RESIZEHANDLER subName
Omschrijving:
Dit commando zet een event handler op voor het geval dat de gebruiker een venster
van type "windows" van grootte verandert (resize). Dit commando is niet zinvol
voor dialoog vensters, grafische vensters, tekstvensters, of voor vensters zonder
een het wijzigingsframe. De "resize event" gebeurtenis kan in een genoemde aftaketiket,
of in een subroutine worden behandeld. Als sub als "event handler" wordt gebruikt,
dan wordt de handler van het venster dat wordt veranderd door gegeven aan de sub.
'set up a handler for when the user resizes a window
print #handle, "resizehandler [branch]"
of...
'clear the resizing handler
print #handle, "resizehandler"
De [branch] die door de "resize event" (vormverandering gebeurtenis) wordt geactiveerd
zal de code moeten bevatten om voor alle gewenste controls een nieuwe plaats (LOCATE)
te bepalen. Nadat aan alle controls een LOCATE commando is gegeven,
moet aan het venster een REFRESH bevel worden gegeven om er voor te zorgen dat het
opnieuw getekend wordt.
Nieuwe dimensies:
Nadat resizehandler is geactiveerd, zijn de nieuwe afmetingen van de vensterwerkruimte
in de variabelen WindowWidth en WindowHeight aanwezig.
Gebruik deze afmetingen om de gewenste grootte en de plaatsing voor de controls
in het venster te berekenen.
Zie ook: LOCATE (bepaal de plaats), REFRESH (verfris) commando's voor vensters en
Dialoog venster commando's.
Gebruik:
Zie het voorbeeldprogramma RESIZE.BAS en de demo hieronder:
'resizehandler using a sub
button #main.close, "Close", quit, UL, 10, 10
open "example" for window as #main
#main "resizehandler resized"
#main "trapclose quit"
wait
sub resized handle$
notice str$(WindowWidth)+","+str$(WindowHeight)
end sub
sub quit handle$
if instr(handle$, ".") then
handle$ = left$(handle$, instr(handle$, ".")-1)
end if
close #handle$
end
end sub