immer noch Probleme mit Menu
Verfasst: 16.08.2005 10:56
Habe immer noch Probleme mit dem Menu.
Das Öffnen des Windows ist bei mir als Procedure definiert.
Hier findet auch die Definitions des Menus statt.
Im Hauptprogramm wird das Fenster aufgerufen und eine Datenbank initialisiert.
Wenn ich jetzt die Menuschleife einfüge, initialisiert die Datenbank nicht mehr. und kann dort keine Abfragen machen.
Wahrscheinlich benutze ich ein falsches Event.
Hier mal die Sourceschnipsel
Fenster Procedure
Hier der Hauptprogrammteil
An welcher Stelle muss ich jetzt die Zuordnunng für das Menu machen.
Mein Problem ist die until-Bedingung.
Mit was für einem Event muss ich arbeiten.
So wie sie jetzt eingstellt ist kann ich keine Datenbaankabfrage machen.
Nehme ich das Menu heraus funktioniert alles einwandfrei.
Dankeschön[/code]
Das Öffnen des Windows ist bei mir als Procedure definiert.
Hier findet auch die Definitions des Menus statt.
Im Hauptprogramm wird das Fenster aufgerufen und eine Datenbank initialisiert.
Wenn ich jetzt die Menuschleife einfüge, initialisiert die Datenbank nicht mehr. und kann dort keine Abfragen machen.
Wahrscheinlich benutze ich ein falsches Event.
Hier mal die Sourceschnipsel
Fenster Procedure
Code: Alles auswählen
Procedure Open_Window_0()
i=5
buff_user$=Space(256)
GetLocaleInfo_( #LOCALE_USER_DEFAULT ,i,buff_user$,256)
;Debug buff_user$
If buff_user$= "49"
Lang = 0
Else
Lang= 1
EndIf
If OpenWindow(#Window_0, 200, 0, 350, 450, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered | #PB_Window_TitleBar , Language(Lang, 4))
If CreateGadgetList(WindowID())
TextGadget(#Text_0, 10, 20, 70, 20, Language(Lang,1))
ComboBoxGadget(#Combo_0, 90, 15, 250, 300)
TextGadget(#Text_1, 10, 60, 70, 20, Language(Lang,2))
ComboBoxGadget(#Combo_1, 90, 55, 250, 300)
TextGadget(#Text_2, 10, 100, 200, 20, Language(Lang,3))
ListViewGadget(#Listview_0, 10, 120, 330, 320)
EndIf
If CreateMenu(0, WindowID())
OpenSubMenu("Konfiguration")
MenuItem(#Menu_01,"Datenbank")
MenuBar()
MenuItem(#Menu_02,"Ende")
CloseSubMenu()
EndIf
EndIf
EndProcedure
Hier der Hauptprogrammteil
Code: Alles auswählen
Open_Window_0()
InitDatabase()
If OpenDatabase(#DB1,"DC_DSN",User.s,PW.s)
If DatabaseQuery("Select distinct "+ColorName.s+" from Master order by "+ColorName.s+" desc;" )
While NextDatabaseRow()
AddGadgetItem(#Combo_0,0,GetDatabaseString(0))
Wend
EndIf
CloseDatabase(#DB1)
EndIf
;SetGadgetState(#Combo_0,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
If Event = #PB_EventGadget
If GadgetID = #Combo_0
selKollek.s=GetGadgetItemText(#Combo_0,GetGadgetState(#Combo_0),0 )
ClearGadgetItemList(#Combo_1)
If OpenDatabase(#DB1,"DC_DSN",User.s,PW.s)
If DatabaseQuery("select distinct "+ColorNumber.s+" from Master where "+ColorName.s+" ='"+selKollek+"'order by "+ColorNumber.s+" desc;")
While NextDatabaseRow()
AddGadgetItem(#Combo_1,0,GetDatabaseString(0))
Wend
EndIf
CloseDatabase(#DB1)
EndIf
;SetGadgetState(#Combo_1,0)
ElseIf GadgetID = #Combo_1
ClearGadgetItemList(#Listview_0)
selKollek.s=GetGadgetItemText(#Combo_0,GetGadgetState(#Combo_0),0 )
selFarbton.s=GetGadgetItemText(#Combo_1,GetGadgetState(#Combo_1),0 )
If OpenDatabase(#DB1,"DC_DSN",User.s,PW.s)
If DatabaseQuery("select MfgProductName from Master where "+ColorName.s+" ='"+selKollek+"' And "+ColorNumber.s+" ='"+selFarbton+"'And Ingredient0Amt+Ingredient1Amt+Ingredient2Amt+Ingredient3Amt+Ingredient4Amt+Ingredient5Amt>0 order by MFGProductName desc;")
While NextDatabaseRow()
AddGadgetItem(#Listview_0,0,GetDatabaseString(0))
Wend
EndIf
CloseWindow_(1)
CloseDatabase(#DB1)
EndIf
ElseIf GadgetID = #Listview_0
;CloseWindow(#Window_0)
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
Code: Alles auswählen
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenuID() ; To see which menu has been selected
Case 1 ; Test
MessageRequester("Test", "Test", 0)
EndSelect
Case #PB_Event_MenuCloseWindow
Quit = 1
EndSelect
Until Quit = 1
Mit was für einem Event muss ich arbeiten.
So wie sie jetzt eingstellt ist kann ich keine Datenbaankabfrage machen.
Nehme ich das Menu heraus funktioniert alles einwandfrei.
Dankeschön[/code]