Seite 5 von 5

Verfasst: 16.07.2007 17:39
von Yoshi
Ihr werdets nicht glauben, aber ich habs tatsächlich geschaftt!


EDIT:

Naja doch nicht ganz, egal was ich drücke, ich soll immer die Datei aussuchen die ich laden möchte ^^

Verfasst: 16.07.2007 18:31
von bobobo
tasten kannst du per Addkeyboardshortcut() einem fenster zuweisen und
ne dateiauswahl findest du hinter dem ok knopf im ff beispiel

Code: Alles auswählen

;pb4.1
;Windowkonstanten
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants

Enumeration
  #Button_0
  #Button_1
  #Text_0
  #Text_1
EndEnumeration

;shortcutevents
Enumeration
  #shortcutA
  #shortcutB
  #shortcutC
  #shortcutD
  #shortcutE
  
EndEnumeration

#shortcutAtext$=" Taste A gedrückt. Hänschen klein..."
#shortcutBtext$=" Taste B gedrückt. geht allein"
#shortcutCtext$=" Taste C gedrückt. in die weite welt.."
#shortcutDtext$=" Taste D gedrückt. Stock und so weiter.."
#shortcutEtext$=" Taste E gedrückt. juhu hallo.."


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      ButtonGadget(#Button_0, 160, 40, 130, 30, "ok")
      TextGadget(#Text_0,300,45,100,20,"<- zur Dateiauswahl")
      ButtonGadget(#Button_1, 380, 70, 150, 30, "ko")
      TextGadget(#Text_1,280,80,100,20,"zum beenden -->")

    EndIf
  EndIf
  AddKeyboardShortcut(#window_0,#PB_Shortcut_A,#shortcutA) ; hier wird ein Tastenshortcut dem Fenster zugewiesen
  AddKeyboardShortcut(#window_0,#PB_Shortcut_B,#shortcutB) ; hier wird ein Tastenshortcut dem Fenster zugewiesen
  AddKeyboardShortcut(#window_0,#PB_Shortcut_A,#shortcutC) ; hier wird ein Tastenshortcut dem Fenster zugewiesen
  AddKeyboardShortcut(#window_0,#PB_Shortcut_A,#shortcutD) ; hier wird ein Tastenshortcut dem Fenster zugewiesen
  AddKeyboardShortcut(#window_0,#PB_Shortcut_A,#shortcutE) ; hier wird ein Tastenshortcut dem Fenster zugewiesen
EndProcedure

Open_Window_0()

Repeat ; Start of the event loop
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
  GadgetID = EventGadget() ; 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_Event_Menu
  Select EventMenu()
  Case #shortcutA
        MessageRequester("siehste","aha ..  "+#shortcutAtext$+" gedrückt")
  Case #shortcutB
        MessageRequester("siehste","aha ..  "+#shortcutBtext$+" gedrückt")
  Case #shortcutC
        MessageRequester("siehste","aha ..  "+#shortcutCtext$+" gedrückt")
  Case #shortcutD
        MessageRequester("siehste","aha ..  "+#shortcutDtext$+" gedrückt")
  Case #shortcutE
        MessageRequester("siehste","aha ..  "+#shortcutEtext$+" gedrückt")
EndSelect
  EndIf
  
  If Event = #PB_Event_Gadget
    If GadgetID = #Button_0
      Pattern$ = "Text (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Alle Dateien (*.*)|*.*"
      Pattern = 0  
      File$ = OpenFileRequester("Bitte Datei zum Laden auswählen", StandardFile$, Pattern$, Pattern)
      MessageRequester("Soso","Du hast also"+#CRLF$+File$+#CRLF$+" ausgewählt",0)
    ElseIf GadgetID = #Button_1
      End
    EndIf
  EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End

Verfasst: 18.07.2007 19:37
von Yoshi
Danke bobobo.


Aber mit dem Quelltext weiß ich immer noch nicht, warum es noch nicht so recht geht, wie ich es mir vorstelle.

Das Problem ist, dass in der Menü-Leiste egal ist, auf was ich klicke, es kommt immer dieses "Datei-laden" Fenster.

Code: Alles auswählen

#WindowWidth = 300
#WindowHeight = 150

If InitMovie() = 0
  MessageRequester("Error", "Da geht was nicht!", 0)
  End
EndIf


If OpenWindow(0, 110, 110, #WindowWidth, #WindowHeight, "Player", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered )
  If CreateMenu(0, WindowID(0))
    MenuTitle("Datei")
      MenuItem(0, "Musikdatei laden")
      MenuItem(1, "Beenden")
    MenuTitle("Status")
      MenuItem(2, "Wiedergabe")
      MenuItem(3, "Pause")
      MenuItem(4, "Stopp")
    MenuTitle("Lautstärke")
      MenuItem(5, "0%")
      MenuItem(6, "10%")
      MenuItem(7, "20%")
      MenuItem(8, "25%")
      MenuBar()
      MenuItem(9, "30%")
      MenuItem(10, "40%")
      MenuItem(11, "50%")
      MenuBar()
      MenuItem(12, "60%")
      MenuItem(13, "70%")
      MenuItem(14, "75%")
      MenuBar()
      MenuItem(15, "80%")
      MenuItem(16, "90%")
      MenuItem(17, "100%")
  EndIf
  
  HideWindow(0, 0)
  Volume= 100
  Repeat
    Select WindowEvent()
      Case #PB_Event_Menu
        Select EventMenu
          Case 0
            MovieName$ = OpenFileRequester("Bitte wöhlen sie die zu ladene Datei!", "", "Audiodateien|*.wma;*.mp3;*.ram;*.wav|Alle Dateien|*.*", 0)
            If MovieName$
              If LoadMovie(0, MovieName$)
                MovieLoaded = 1
                MovieState = 0
                
                If MovieHeight(0) > 0  ; Not an audio only file..
                  ResizeWindow(0, #PB_Ignore, #PB_Ignore, MovieWidth(0), MovieHeight(0)+70)
                Else
                  ResizeWindow(0, #PB_Ignore, #PB_Ignore, #WindowWidth, #WindowHeight)
                EndIf
                
                StatusBarText(0, 0, "Datei wurde geladen", 0)
              Else
                StatusBarText(0, 0, "Datei kann nicht geladen werden", 0)
              EndIf
            EndIf
            
          Case 1
            End
            
          Case 2
            If MovieLoaded
              If MovieState = 2
                ResumeMovie(0)
              Else
                PlayMovie(0, WindowID(0))
              EndIf
              MovieState = 1  
            EndIf
            
          Case 3
            If MovieLoaded And MovieState = 1
              PauseMovie(0) 
              MovieState = 2  
              
           EndIf
           
          Case 4
            If MovieLoaded And MovieState = 1
              StopMovie(0)
              MovieState = 3 
              
           EndIf
           
          Case 5
            Volume = 0
            
          Case 6
            Volume = 10
          
          Case 7
            Volume = 20
            
          Case 8
            Volume = 25
            
          Case 9
            Volume = 30
            
          Case 10
            Volume = 40
            
          Case 11
            Volume = 50
            
          Case 12
            Volume = 60
            
          Case 13
            Volume = 70
            
          Case 14
            Volume = 75
            
          Case 15
            Volume = 80
            
          Case 16
            Volume = 90
            
          Case 17
            Volume = 100
            
        EndSelect
        
        Case #PB_Event_CloseWindow
        End
        
      Case #PB_Event_SizeWindow
        If IsMovie(0)
          ResizeMovie(0, 0, 27, WindowWidth(0), WindowHeight(0)-70)
        EndIf
        
      Case 0
        Delay(20)
        
        
    EndSelect
  ForEver
EndIf
End                  

Verfasst: 18.07.2007 19:44
von D@nte
Zeile 43...

Und du solltest dir schon mal angewöhnen Konstanten für die GadgetIDs zu benutzen...

Verfasst: 18.07.2007 19:53
von Yoshi
Danke, jetzt spint er immer noch rum, aber mal schaun.

Verfasst: 18.07.2007 20:11
von Yoshi
Also jetzt habe ich bei Zeile 43

Code: Alles auswählen

Select EventMenu()
statt

Code: Alles auswählen

Select EventMenu
gemacht und jetzt kommt nicht mehr das nervige Fenster, aber ich kann die datei nicht wiedergeben.


EDIT:

Wave macht er, aber keine Mp3s.

Verfasst: 18.07.2007 20:31
von D@nte
>Wave macht er, aber keine Mp3s.
Geht beides

Verfasst: 18.07.2007 21:21
von Yoshi
Komisch auf einmal gehts bei mir auch... vielleicht lags aber auch an der Datei, dass er die nicht abspielen konnte!



EDIT:

Das Thema wäre hiermit, denke ich, beendet!