Du brauchst doch nur den angezeigten Eintrag wieder zu löschen. Allerdings sollte die Schleife dann abwärts laufen.
Delphi-Quellcode:
var i:Integer; d,t,s:String;
begin
t :=timetostr(datetimepicker1.Time);
d :=datetostr(monthcalendar1.Date);
for i:= ListBox1.Items.Count-1 downto 0 do begin
if Pos(d,ListBox1.Items[i])=0 then Continue;
if Pos(t,ListBox1.Items[i])=0 then Continue;
s:= ListBox1.Items[i];
ListBox1.Items.Delete(i);
ShowMessage(s);
end;
end;
Und wenn Du nur den Text haben willst muss Du halt den Text nach Datum & Uhrzeit nehmen:
Delphi-Quellcode:
.
.
.
s:= ListBox1.Items[i];
s:= Copy(s,Length(d)+Length(t)+' ',Length(s));