Event für SetGadgetText funktioniert nicht.
Verfasst: 23.04.2011 12:26
Hallo, ich habe ein Programm umgebaut um es mit einem Button zu starten.
Das Programm startet und die texte_e werden erst nach Beendigung reingeschrieben im Editfenster. Eigentlich sollte der Text "starte..." erscheinen, dann soll die Aufnahme erfolgen usw.
Wie kann man das so proggen?
Gruss
Das Programm startet und die texte_e werden erst nach Beendigung reingeschrieben im Editfenster. Eigentlich sollte der Text "starte..." erscheinen, dann soll die Aufnahme erfolgen usw.
Wie kann man das so proggen?
Gruss
Code: Alles auswählen
Global text_e.s
Enumeration
#Window_0
#Button_0
#Editor_0
#Font_0
EndEnumeration
Procedure SaveWave(NrSeconds , Outputfile$)
wf.WAVEFORMATEX
wf\wFormatTag = #WAVE_FORMAT_PCM
wf\nChannels = 2
wf\nSamplesPerSec = 44100
wf\wBitsPerSample = 16
wf\nAvgBytesPerSec = (wf\wBitsPerSample / 8) * wf\nChannels * wf\nSamplesPerSec
wf\nBlockAlign = (wf\wBitsPerSample / 8) * wf\nChannels
If waveInOpen_(@hwi , #WAVE_MAPPER , wf , 0 , 0 , #WAVE_FORMAT_DIRECT) = #MMSYSERR_NOERROR
wh.WAVEHDR
wh\lpData = AllocateMemory(wf\nAvgBytesPerSec * NrSeconds)
wh\dwBufferLength = MemorySize(wh\lpData)
wh\dwFlags = 0
If wh\lpData
If waveInPrepareHeader_(hwi , wh , SizeOf(WAVEHDR)) = #MMSYSERR_NOERROR
If waveInAddBuffer_(hwi , wh , SizeOf(WAVEHDR)) = #MMSYSERR_NOERROR
If waveInStart_(hwi) = #MMSYSERR_NOERROR
waveInStop_(hwi)
waveInUnprepareHeader_(hwi,wh,SizeOf(WAVEHDR))
If CreateFile(0,Outputfile$)
WriteData(0 , @"RIFF" , 4)
WriteLong(0 , 44 + wh\dwBytesRecorded)
WriteData(0 , @"WAVE" , 4)
WriteData(0 , @"fmt " , 4)
WriteLong(0 , 16)
WriteData(0 , wf , SizeOf(WAVEFORMATEX) - 2)
WriteData(0 , @"data" , 4)
WriteLong(0 , wh\dwBytesRecorded)
WriteData(0 , wh\lpData , wh\dwBytesRecorded)
CloseFile(0)
EndIf
EndIf
EndIf
EndIf
FreeMemory(wh\lpData)
EndIf
waveInClose_(hwi)
EndIf
EndProcedure
OpenWindow(#Window_0, 400, 150, 300,300, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
SetCurrentDirectory("data/")
ButtonGadget(#Button_0, 10,10, 80, 25, "Datei laden")
EditorGadget(#Editor_0, 10, 50, 200,200)
LoadFont(#Font_0, "Lucida Console", 9)
SetGadgetFont(#Editor_0, FontID(#Font_0))
Repeat
Event = WaitWindowEvent(1)
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #Button_0
text_e+"starte..."
SetGadgetText(#Editor_0, text_e)
SaveWave(10 , "Test.wav")
text_e+"fertig..."
SetGadgetText(#Editor_0, text_e)
EndIf
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
ForEver