Frage wie Kann ich den nun die Wäve Länge für ein Sleep Komando benutzen benutzen
Delphi-Quellcode:
procedure TForm1.bakenzeitTimer(Sender: TObject);
var
ba:string;
wa:string;
wp : TWaveProvider;
//wave:string;
{$J+} const CanPlay: Boolean = True; {$J-}
begin
if (form3.Bake.Checked = true) then begin
wp := TWaveProvider.Create('bake1.wav');
// ein paar Infos über's Wave ausgeben
// Memo1.Lines.Add(+IntToStr(wp.DataHeader.length div wp.FormatData.AvgBytesPerSec));
FreeAndNil(wp);
end;
check.Enabled:=false;
bakenzeit.Interval:=StrToInt(form3.bakenzeit.text)*1000 ;
onoff.Picture.Bitmap.LoadFromResourceName(HInstance,'ON_BIT');
if pin = 'dtr' then DTR(true);
if pin2 = 'rts' then RTS(true);
sleep (2000);
canPlay :=True;
if CanPlay then
begin
//ba:='+wave+';
sndPlaySound(PChar('bake1.wav'),SND_ASYNC);
CanPlay := False;
Memo1.Lines.Add('Duration in Sec.: '+IntToStr(wp.DataHeader.length div wp.FormatData.AvgBytesPerSec));
sleep (+InToStr+); //// Übergabe der Zeit von Memo1.Lines Add sprich die Sekunden die das wave lang ist müssen an Sleep übergeben werden mit einem *1000 damit das programm wartet bis das wave zu ende gespielt hat befor DTR und RTS auf false gehen
// sleep (20000);
// bakenzeit.Enabled:=false;
//check.Enabled:=true;
if pin = 'dtr' then DTR(false);
if pin2 = 'rts' then RTS(false);
onoff.Picture.Bitmap.LoadFromResourceName(HInstance,'OFF_BIT');
check.Enabled:=true;
end;
end;
end.
hat jemand eine Bessere Idee ohne das das Programm einfriert dann herr damit.