18.11.2014, 19:19
hm... funktioniert bei mir wie es soll. Du kannst übrigends das XML auch gleich mit reinpacken, dann ist es einfacher zu testen. kleiner nit-pick: "TBImages:" kannst du weglassen. Wenn du TBImages: angibtst, dann legst du dich auf AISS hardcoded fest. Wenn du aber z.B. statt "TBImagesave" einfach "save" machst, dann sucht NTUI zuerst im GUI Pfad des Programms, dann in AISS. So kannst du Bilder nur für dein Programm mitliefern, austauschen oder auch eine komplett andere Bilder Bibliothek benutzen, z.B. OpenIcon oder so.
[ab3]WBStartup ; WbStart erlauben
; /*========== Include NTUI ========== */
XINCLUDE "ntui.include.ab3" ; includieren der NTUI Funktionalitaet
; /*========== Init Program ========== */ ; anlegen einer neuen Engine aus dem XML Datenfile
*engine.tuiEngine = ntui_GetEngine{ntui_BuildFromXMLMem{#NULL, ?layout}}
If (*engine = #NULL) Then error{"unable to create NTUI environment!"} : Goto exit
If ntui_ShowWindowByID{*engine,"EDMainWindow"} = False Then error{"unable to show EDMainwindow!"} : Goto exit ; zeige das Hauptfenster
; /*========== Message Loop ========== */
.mainloop
While quit.b=False
Wait_ $FFFFFFFF
Repeat
*Notify.tuiNotify = ntui_GetNotify{*engine} ; Notify aus der Engine bekommen
Select ntui_GetNotifyID{*Notify} ; Notify auswerten...
Case "EDClose"
quit = True
Case "Button1"
ntui_SetAttrByID{*engine,"Button1",#TUIA_DISABLED,True}
ntui_SetAttrByID{*engine,"Button2",#TUIA_ENABLED,True}
;message{"Buttons should change now"}
Case "Button2"
ntui_SetAttrByID{*engine,"Button1",#TUIA_ENABLED,True}
ntui_SetAttrByID{*engine,"Button2",#TUIA_DISABLED,True}
;message{"Buttons should change now"}
End Select
Until *Notify = Null
Wend
.exit
; /*========== Aufraeumen ==========*/
ntui_FreeEngine{*engine} ; die Engine freigeben (und alle Fenster schliessen)
End
layout:
Dc.b "<Engine id='engine' appname='EnableDisable' appicontext='EnableDisable' oniconify='Iconify' onpopup='PopUp' useaiss='true'/>"
Dc.b "<Window id='EDMainWindow' title='Enable Disable Example' onClose='EDClose'>"
Dc.b " <VGroup>"
Dc.b " <Toolbutton text='Button1' id='Button1' onClick='Button1' align='left' image='button' help='click To Enable the second Button AND Disable first'/>"
Dc.b " <Toolbutton text='Button2' id='Button2' onClick='Button2' align='left' image='button' disabled='True' help='click To Enable the first Button AND Disable second'/>"
Dc.b " </VGroup>"
Dc.b "</Window>",0[/ab3]
[ab3]WBStartup ; WbStart erlauben
; /*========== Include NTUI ========== */
XINCLUDE "ntui.include.ab3" ; includieren der NTUI Funktionalitaet
; /*========== Init Program ========== */ ; anlegen einer neuen Engine aus dem XML Datenfile
*engine.tuiEngine = ntui_GetEngine{ntui_BuildFromXMLMem{#NULL, ?layout}}
If (*engine = #NULL) Then error{"unable to create NTUI environment!"} : Goto exit
If ntui_ShowWindowByID{*engine,"EDMainWindow"} = False Then error{"unable to show EDMainwindow!"} : Goto exit ; zeige das Hauptfenster
; /*========== Message Loop ========== */
.mainloop
While quit.b=False
Wait_ $FFFFFFFF
Repeat
*Notify.tuiNotify = ntui_GetNotify{*engine} ; Notify aus der Engine bekommen
Select ntui_GetNotifyID{*Notify} ; Notify auswerten...
Case "EDClose"
quit = True
Case "Button1"
ntui_SetAttrByID{*engine,"Button1",#TUIA_DISABLED,True}
ntui_SetAttrByID{*engine,"Button2",#TUIA_ENABLED,True}
;message{"Buttons should change now"}
Case "Button2"
ntui_SetAttrByID{*engine,"Button1",#TUIA_ENABLED,True}
ntui_SetAttrByID{*engine,"Button2",#TUIA_DISABLED,True}
;message{"Buttons should change now"}
End Select
Until *Notify = Null
Wend
.exit
; /*========== Aufraeumen ==========*/
ntui_FreeEngine{*engine} ; die Engine freigeben (und alle Fenster schliessen)
End
layout:
Dc.b "<Engine id='engine' appname='EnableDisable' appicontext='EnableDisable' oniconify='Iconify' onpopup='PopUp' useaiss='true'/>"
Dc.b "<Window id='EDMainWindow' title='Enable Disable Example' onClose='EDClose'>"
Dc.b " <VGroup>"
Dc.b " <Toolbutton text='Button1' id='Button1' onClick='Button1' align='left' image='button' help='click To Enable the second Button AND Disable first'/>"
Dc.b " <Toolbutton text='Button2' id='Button2' onClick='Button2' align='left' image='button' disabled='True' help='click To Enable the first Button AND Disable second'/>"
Dc.b " </VGroup>"
Dc.b "</Window>",0[/ab3]