maphandle #oldHandle, #newHandle
maphandle #oldHandle, "#newHandle"
Omschrijving:
Maphandle wijst een nieuwe handle toe aan een apparaat nadat het geopend werd.
Nu is het mogelijk om code opnieuw te gebruiken die voor open
vensters, bestanden, enz. wordt gebruikt. Bijvoorbeeld kan een venster als volgt
worden geopend:
open "Maphandle example" for window as #renameMe
Zodra dit venster eenmaal geopend is, kan de code deze regel niet opnieuw uitvoeren
omdat de handle #renameMe reeds in gebruik is door dat venster.
Het openen van een andere venster wordt niet toegestaan omdat een bepaalde handle
slechts door één apparaat tegelijkertijd in gebruik kan zijn.
Het maphandle commando verstrekt een manier om dit probleem te omzeilen.
U kunt de handle van het venster veranderen nadat u het geopend heeft.
Gebruik:
Maphandle Examples
maphandle #renameMe, #newHandle
maphandle #renameMe, "#newHandle"
a$ = "#new" + "Handle"
maphandle #renameMe, a$
Met dit voorbeeld ziet u hoe u desgewenst handles dynamisch (tijdens de uitvoering)
kunt creëren:
winName$ = "first second third"
for x = 1 to 3
call createWindow word$(winName$, x)
next x
wait
sub createWindow title$
texteditor #1.te, 10, 10, 200, 200
open "text "+title$ for window as #1
#1.te "this is the "+title$+" window"
#1 "trapclose aboutToClose"
handle$ = "#"+title$
maphandle #1, handle$
end sub
sub aboutToClose handle$
confirm "Close "+handle$+"?"; answer
if answer = 1 then close #handle$
end sub
De oude manier
Hier is de oude manier om drie vensters te openen zonder het gebruik van maphandle
en veranderlijke handles. Misschien is dit wel gemakkelijker te lezen,
maar het is een heleboel meer code, en u kunt een ander venster slechts openen
door een heleboel extra code toe te voegen.
texteditor #1.te, 10, 10, 200, 200
open "text first" for window as #1
#1.te "this is the first window"
#1 "trapclose [aboutToClose1]"
texteditor #2.te, 10, 10, 200, 200
open "text second" for window as #2
#2.te "this is the second window"
#2 "trapclose [aboutToClose2]"
texteditor #3.te, 10, 10, 200, 200
open "text third" for window as #3
#3.te "this is the third window"
#3 "trapclose [aboutToClose3]"
wait
[aboutToClose1]
confirm "Close first?"; answer
if answer = 1 then close #1
wait
[aboutToClose2]
confirm "Close second?"; answer
if answer = 1 then close #2
wait
[aboutToClose3]
confirm "Close third?"; answer
if answer = 1 then close #3
wait