Hallo Z32,
also ich weiß ja nicht, ob es dich noch interessiert, aber ich würde das ganze eher so angehen:
Delphi-Quellcode:
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
datdat: String;
timtim: String;
dattim: TDateTime;
end;
var
Form1: TForm1;
implementation
uses DateUtils;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
sl: TStringList;
begin
Timer1.Enabled := FALSE; // Zur Sicherheit
sl := TStringList.Create;
sl.LoadFromFile('datumundzeit.txt'); // Einfach mit DateTimeToStr beim speichern der Datei ablegen, dann wirds einfacher
dattim := StrToDateTime(sl[0]);
// nur der Vollständigkeit halber
datdat := DateToStr(dattim);
timtim := TimeToStr(dattim);
if dattim > now then begin
// was passiert wenn der Zeitpunkt in der Zukunft liegt?
Timer1.Interval := MilliSecondsBetween(now, dattim);
Timer1.Enabled := TRUE;
end else begin
// was ist wenn die Zeit bereits vorbei ist beim öffnen der Anwendung
ShowMessage('Zeitpunkt liegt in der Vergangenheit');
end;
sl.Free;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := FALSE;
sndplaysound(PChar('Glockenspiel.wav'),snd_sync);
end;
end.
Das ganze ist nur ein Vorschlag wie man das "Warten" so einfach wie möglich gestalten kann. Du passt eigentlich nur das Intervall (in Millisekunden) an die Wartezeit an und startest den Timer. Dann bist du schon fertig. Sobald der Timer auslößt, schlatest du Ihn wieder aus und reagierst mit deinem Soundevent.
Alles weitere kannst du herum bauen wie du magst.
Vielleicht bringt es dir ja was.
Gruß, Chris