Seite 2 von 2

Re: Button

Verfasst: 07.02.2010 13:21
von hörmi
mk-soft hat geschrieben:@hörmi,

ist nicht besonders Hilfreich für ein Neuling.
Ich dacht mir einfach nur, da theweice gefragt hat wie man einen Ordner öffnet wenn man einen Button drückt und ihr im die EventSchleife erklärt habt, dass ich mal kurz auf das Ordner-öffnen eingehe.

Re: Button

Verfasst: 07.02.2010 15:57
von mk-soft
Ich denke seine frage ist eher mit mit "OpenFileRequester(...)" zu beantworten und wie man die
Events verarbeitet.
Habe mal eine Basis für Anfängerfragen erstellt. Dazu habe ich die OpenWindow... in die Procedure Main gekapselt. Fanden einige besser um die Variablen nicht mehr Global zu haben.

Wir sollten uns auf eine gemeinsame Programmstruktur für kommende Fragen einigen.

Basis

Code: Alles auswählen


EnableExplicit

;- Konstanten
Enumeration ; Window ID
  #Window
EndEnumeration

Enumeration ; Menu ID
  #Menu
EndEnumeration

Enumeration ; MenuItem ID
  #Menu_Exit
EndEnumeration

Enumeration ; Statusbar ID
  #Statusbar
EndEnumeration

Enumeration ; Gadget ID
  #Button_Open
EndEnumeration

; ***************************************************************************************

;- Globale Variablen
Global exit = 0

Procedure Main()

  Protected style, event, window, menu, gadget, type
  Protected dateiname.s
  
  ;- Fenster
  style = #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget
  If OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 400, 300, "Fenster", style)
    ; Menu
    If CreateMenu(#Menu, WindowID(#Window))
      MenuTitle("&Datei")
        MenuItem(#Menu_Exit, "Be&enden")
    EndIf
    ; Statusbar
    CreateStatusBar(#Statusbar, WindowID(#Window))
    ; Gadgets
    ButtonGadget(#Button_Open, 10, 10, 120,24, "Öffnen")
    
    ;-- Hauptschleife
    Repeat
      event = WaitWindowEvent()
      Select event
        Case #PB_Event_Menu                       ; ein Menü wurde ausgewählt
          menu = EventMenu()
          Select menu
            Case #Menu_Exit
              Exit = 1
          EndSelect
        Case #PB_Event_Gadget                     ; ein Gadget wurde gedrückt
          gadget = EventGadget()
          type = EventType()
          Select gadget
            Case #Button_Open
              If type = #PB_EventType_LeftClick
                ; Hier einfügen wenn der Button gedrückt wurde
                dateiname = OpenFileRequester("Öffnen...", "", "", 0)
                Debug dateiname
                
              EndIf
          EndSelect
        Case #PB_Event_CloseWindow                ; das Schließgadget vom Fenster wurde gedrückt
          window = EventWindow()
          If window = #Window
            Exit = 1
          EndIf
          
        Case #PB_Event_Repaint                    ; der Fensterinhalt wurde zerstört und muss neu gezeichnet werden (nützlich für 2D Grafik-Operationen) 
        Case #PB_Event_SizeWindow                 ; das Fenster wurde in der Größe verändert
        Case #PB_Event_MoveWindow                 ; das Fenster wurde verschoben
        Case #PB_Event_ActivateWindow             ; das Fenster wurde aktiviert (hat den Fokus erhalten)
        Case #PB_Event_SysTray                    ; das SysTray wurde aktiviert
      
      EndSelect
      
    Until Exit
  EndIf
EndProcedure : Main()  
FF :wink: