habe folgendes Problem: Möchte mir einen eigenen Messagerequester schreiben, der a) eine größere Schrift hat und b) selbstbenannte Buttons hat.
Habe folgenden Code soweit zusammengeschustert:
Code: Alles auswählen
Enumeration
#window_one
#window_two
#fontnum
EndEnumeration
Procedure AlertWindow(headline$,message$, button1$, button2$, button3$)
DisableWindow(#window_one, #True)
; Hauptfenster inaktiv
If OpenWindow(#window_two, 0, 0, 400, 250, "", #PB_Window_WindowCentered, WindowID(#window_one))
ww = WindowWidth(#window_two)
wh = WindowHeight(#window_two)
SetWindowColor(#window_two, RGB(255,255,255))
x = TextGadget(#PB_Any, 10, 0, ww-20, wh-80,"")
SetGadgetColor(x, #PB_Gadget_FrontColor, RGB(0,0,0))
SetGadgetColor(x, #PB_Gadget_BackColor, RGB(255,255,255))
SetGadgetText (x, headline$ +Chr(13)+Chr(10)+Chr(13)+Chr(10)+ message$)
x = ButtonGadget(#PB_Any, 10, 210, 200, 20, button1$)
;dieser Button macht Probleme
Delay (5000)
;nur damit man sieht, dass man nichts sieht ...
CloseWindow(#window_two)
EndIf
DisableWindow(#window_one, #False)
EndProcedure
If OpenWindow(#window_one, 0, 0, 222, 200, "ButtonGadgets", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If LoadFont(#fontnum, "Arial", 11) : SetGadgetFont(#PB_Default, FontID(#fontnum)) : EndIf
b1 = ButtonGadget(#PB_Any, 10, 30, 200, 30, "AlertWindow")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow: Break
Case #PB_Event_Gadget
If EventGadget() = b1
AlertWindow("Titelzeile", "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.", "b1","b2","b3")
EndIf
EndSelect
ForEver
EndIf
Code: Alles auswählen
x = ButtonGadget(#PB_Any, 10, 210, 200, 20, button1$)
Außerdem noch zwei Fragen:
a) Gehe ich recht in der Annahme, dass ich mich um Gadgets eines geschlossenen Fensters nicht mehr kümmern muss oder müssten die noch irgendwie eliminiert werden (Stichwort Gadgetlist ...) ?
b) wie müsste die Eventschleife nur für dieses Fenster gestrickt sein?
Jetzt schon besten Dank für Eure Zeit!