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