Seite 1 von 1

Probleme mit Menu

Verfasst: 25.07.2005 17:19
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

Verfasst: 25.07.2005 21:02
von Batze
Und was ght daran nicht, außer dass du

Code: Alles auswählen

MessageRequester("Info", "Es funktioniert nicht", 0)
schreiben musst?

Verfasst: 26.07.2005 09:58
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.