Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var t:TStringDynArray;
i:integer;
begin
for i:=Lst_todo.Count-1 downto 0 do
begin
t:=Explode(' - ',Lst_todo.Items[i]);
if time-StrToTime(t[0])>0 then
begin
if t[2]=Sound then Snd else
if t[2]=Messag then Msg(t[1]) else
if t[2]=Msg_Sound then Snd_Msg(t[1]);
Lst_done.Items.Add(Lst_todo.Items[i]);
Lst_todo.Items.Delete(i);
end;
end;
end;
Sound, Messag und Msg_Sound sind konstante
Snd, Msg und Snd_Msg sind procedures
die zerlegung per explode funzt wies sie soll, aber bei 2 oder mehr einträgen die abgearbeitet werden müssen kommt ne meldung, wie wenn man versucht auf Lst_done.Items[2] zuzugreifen obwohl die nur 1 eintrag hat....
vorher wird die showmessage(die wird in Msg aufgerufen) aber auch zu oft gemacht, also bei 2 sachen kommt die min. 3 mal....
woran liet das?