Probleme mit Menu

Anfängerfragen zum Programmieren mit PureBasic.
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Probleme mit Menu

Beitrag von HoDam »

Hallo,

habe ein Programm erstellt, mit dem ich eine Datenbank abfragen kann.
Zusätzlich ein Routine, um die Datenbankparameter (Pfad, Zuordnung bestimmter Felder) zu definieren.


Für sich alleine funktionieren die Programme einwandfrei.

Das öffnen des Hauptfensters (Datenbankmaske) erfolgt über ein Procedure.
Danach findet die Initialisierung der Datenbank statt.

Jetzt möcht ich in diesem Hauptfenster ein Menu erstellen (Konfiguration). Menu erscheint auch.
Aber jetzt habe ich Probleme mit dem Programmablauf.

In dem Moment, wo ich jetzt eine Procedure (Konfiguration)einem Menupunkt zuordnen möchte , bleibt es an dieser Stelle stehen. Erst wenn ich den Menupunkt angeklickt habe und die Procedure durchlaufen haben. wird auch wieder die Datenbank initialisiert.

Mit was für einem Event muss ich arbeiten.





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 CreateMenu(0, WindowID())
      MenuTitle("Konfiguration")
      MenuItem( 1, "Datenbank")
      MenuItem( 2, "Schliessen")
      
    EndIf
    
    
      
    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
    
    
  EndIf

EndProcedure

Wo setzte ich jetzt die Zuordnung für den Menupunkt hin.

Code: Alles auswählen

Repeat

    Select WaitWindowEvent()

      Case #PB_EventMenu

        Select EventMenuID()  ; To see which menu has been selected

          Case 1 ; Konfiguration aufrufen
           PMSMALLEFB_Config()
            
          Default
            MessageRequester("Info", "Es funktioniert nicht"), 0)

        EndSelect

      Case #WM_CLOSE ; #PB_EventCloseWindow
        Quit = 1

    EndSelect

  Until Quit = 1

Dankeschön
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Und was ght daran nicht, außer dass du

Code: Alles auswählen

MessageRequester("Info", "Es funktioniert nicht", 0)
schreiben musst?
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Beitrag von HoDam »

Sorry,
das war nicht böse gemeint. :freak:

Habe inzwischen selber die Lösung gefunden.
Mein Fehler war, das ich die Repeatschleife in der Prozedur untergebracht habe.

Sie muss natürlich im Hauptprogrammteil stehen.
Antworten