Zwei Fenster - danach keine Ereignisabfrage mehr
Verfasst: 21.09.2005 12:15
Moin,
versuche mich seit ein paar Tagen mit PureBasic und muss sage das ich begeistert bin.
Nun folgendes Problem :
Möchte beim betätigen von einem Knopf ein neues Fenster aufmachen. Das klappt auch ganz gut, allerdings sobald das zweite Fenster geschlossen wird und das erste wieder aufgemacht wird, funktioniert die Ereignis Schleife nicht mehr.
Hier mal der Code:
versuche mich seit ein paar Tagen mit PureBasic und muss sage das ich begeistert bin.

Nun folgendes Problem :
Möchte beim betätigen von einem Knopf ein neues Fenster aufmachen. Das klappt auch ganz gut, allerdings sobald das zweite Fenster geschlossen wird und das erste wieder aufgemacht wird, funktioniert die Ereignis Schleife nicht mehr.
Hier mal der Code:
Code: Alles auswählen
IncludeFile "Common.pb"
IncludeFile "Common-edit.pb"
IncludeFile "db_mysql.pb"
; Prozeduren die genutzt werden
Procedure getData()
sqlquery$ = "SELECT DISTINCT artikel.artnr, sdesc1, price_shop, export.e_date FROM artikel LEFT JOIN export ON artikel.artnr = export.artnr ORDER BY artikel.artnr DESC"
rows = SQLgetRows(sqlquery$)
DatabaseQuery(sqlquery$)
pbStep.f = 100 / rows
For i = 1 To rows
NextDatabaseRow()
AddGadgetItem(#ListIcon_0, 0, GetDatabaseString(0) + Chr(10) + GetDatabaseString(1) + Chr(10) + GetDatabaseString(2) + Chr(10) + GetDatabaseString(3))
SetGadgetState(#ProgressBar_0, GetGadgetState(#ProgressBar_0) + pbStep.f)
Next i
EndProcedure
Procedure enterData()
Open_Window_1()
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindowID() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadgetID() ; Is it a gadget event?
EventType = EventType() ; The event type
If Event = #PB_EventGadget
If GadgetID = #Sdesc_1
ElseIf GadgetID = #Sartnr_0
ElseIf GadgetID = #Sdesc_2
ElseIf GadgetID = #Sdesc_3
ElseIf GadgetID = #Sprice_shop
ElseIf GadgetID = #Sprice_store
ElseIf GadgetID = #Radio_0
ElseIf GadgetID = #Radio_1
ElseIf GadgetID = #Radio_2
ElseIf GadgetID = #Samount
ElseIf GadgetID = #BPic_0
ElseIf GadgetID = #BPic_1
ElseIf GadgetID = #Shtml
ElseIf GadgetID = #BEnter
ElseIf GadgetID = #BClose
CloseWindow(#Window_1)
Open_Window_0()
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
EndProcedure
; Die Repeat Schleife
Procedure mainWindow()
Open_Window_0()
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindowID() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadgetID() ; Is it a gadget event?
EventType = EventType() ; The event type
;You can place code here, and use the result as parameters for the procedures
If Event = #PB_EventGadget
If GadgetID = #ListIcon_0
ElseIf GadgetID = #ProgressBar_0
ElseIf GadgetID = #Button_2
ClearGadgetItemList(#ListIcon_0)
getData()
ElseIf GadgetID = #Button_4
CloseWindow(#Window_0)
enterData()
ElseIf GadgetID = #Button_5
ElseIf GadgetID = #Button_6
ElseIf GadgetID = #Image_0
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
EndProcedure
; Start der Anwendung
InitDatabase()
SQLconnect("Wegerich_ODBC", "exroot", "figgen ;)")
mainWindow()