ich bin neu hier und habe auch schon gleich ein erstes Problem auf Lager. Vielleicht kann mir jemand helfen.
Ich habe ein Problem bei der Dateitypen-Auswahl im Open(Save-)FileRequester. Die Dateitypen können nicht in jedem Fall fehlerfrei ausgewählt werden. Nach der Auswahl eine neuen Dateitypen bleibt das fenster einfach leer.
Merkwürdigerweise funktionert es einwandfrei, wenn ich keinen Sound abspiele (wo auch immer da der Zusammenhang ist).
Hier der Code:
Code: Alles auswählen
Procedure sound_click()
SoundFileName$ = "c:\windows\media\Windows XP-Ping.wav"
If SoundFileName$
If LoadSound(77, SoundFileName$)
;
PlaySound(77,0) ; <---- bitte mal Zeile remarken und nochmal testen
;
Else
MessageRequester("Error", "Can't load the sound.", 0)
EndIf
EndIf
EndProcedure
Procedure showwin()
HideWindow(0,0)
EndProcedure
Procedure save_req()
StandardFile$ = "C:\autoexec.bat"
Pattern$ = "Text (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Alle Dateien (*.*)|*.*"
Pattern = 0 ; wir verwenden den ersten von drei möglichen Pattern als Standard
File$ = OpenFileRequester("Bitte Datei zum Speichern auswählen", StandardFile$, Pattern$, Pattern)
If File$
MessageRequester("Information", "Sie haben folgende Datei ausgewählt:"+Chr(10)+File$, 0)
Else
MessageRequester("Information", "Der Requester wurde abgebrochen.", 0)
EndIf
HideWindow(0, 1)
EndProcedure
;- Hier beginnt das Hauptprogramm
If InitSound() = 0
MessageRequester("Error", "Can't init sound or no sound card is available", 0)
End
EndIf
If OpenWindow(0,10,10,500,500,"", #PB_Window_Invisible | #PB_Window_ScreenCentered | #PB_Window_TitleBar)
HideWindow(0, 1)
If CreateGadgetList(WindowID(0))
ButtonGadget(995,81,0,20,20,"#")
ButtonGadget(999,0,0,20,20,"X")
EndIf
WindowIsOpen.l = 0
Repeat
ev = WindowEvent()
If ev=#PB_Event_CloseWindow
quit=1
EndIf
If ev=#PB_Event_Gadget
If EventGadget()=999
HideWindow(0,1)
EndIf
If EventGadget()=995
save_req()
EndIf
EndIf
If GetAsyncKeyState_(#VK_A)
WindowIsOpen.l = 1
EndIf
If WindowIsOpen.l = 1
showwin()
sound_click()
WindowIsOpen.l = 0
EndIf
Delay(10)
Until quit=1
EndIf
End
- Programm starten, es passiert nichts (Fenster versteckt)
- Taste "a" drücken, Fenster wird geöffnen
- Butten "#" öffnet SaveFileRequester
- Nach Dateitypenauswahl bleibt der das Fenster leer, obwohl es Dateien mit der entsprechenden Endung anzeigen müsste
Und nun löscht mal die Zeile 6 (PlaySound(77,0)) und versucht nochmal. Bei mir funktioniert es dann.
Kann jemand einem Laien wie mir erklären, worin der Zusammenhang besteht?
Danke und Gruß,
Horst
(WinXP, Purebasic 4.0)