Habe ein kleines Testprogramm geschrieben um mich mit Fenstern und Panels vertraut zu machen. Das ganze funzt aber nur einmal...
Code: Alles auswählen
; ##### Fenster-Test / 2. Fenster (mit button3) öffnet nur 1 mal - warum? ###
; ##### Schließkreuz muß ich auch 2 mal drücken, bevor es schließt ######
; ##### habe in dem Fenster eine eigene Repeatschleife - ist das ok? ######
Procedure fenster2()
If OpenWindow(1, 0, 0, 250, 105, "hier Fenster 2 - das war Button No 3...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
DisableWindow(0,1)
SetWindowColor(1, $66ffff)
If CreateGadgetList(WindowID(1))
ButtonGadget(6, 10, 15, 150, 30, "Test button")
EndIf
Repeat
Event.l = WaitWindowEvent(500)
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 6
DisableWindow(0,0)
; SetActiveWindow(0) - nicht nötig, oder?
CloseWindow(1)
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow
EndIf
EndProcedure
; ##### Fenster und Panel erzeugen #####
If OpenWindow(0, 0, 0, 622, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
PanelGadget (0, 8, 8, 606, 203)
AddGadgetItem (0, -1, "Panel 1")
ButtonGadget(4, 10, 15, 80, 24,"Button 4")
AddGadgetItem (0, -1,"Panel 2")
ButtonGadget(2, 10, 15, 80, 24,"Button 2")
ButtonGadget(3, 95, 15, 80, 24,"Button 3")
AddGadgetItem (0, -1,"Panel 3")
ListViewGadget(5, 30, 30, 280, 60)
; ##### Hauptschleife #####
Repeat
Event.l = WaitWindowEvent(500)
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 4 ; nicht wichtig
MessageRequester("hi", "das war Button 4")
Case 3 ; öffnet 2. Fenster
fenster2()
Case 2 ; bisschen Spielerei
MessageRequester("hi", "Danke für Deine Hilfe...")
DisableGadget(4,1)
AddGadgetItem(5, -1, "hier steht jetzt Text")
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow
EndIf
Danke für Eure Zeit!