mille
Erfahrenes Mitglied
ich habe ein array und will mitten drin ein Element löschen, per Listbox ... das angeklickte (markierte) soll dann aus dem array entfernt werden.
das hab ich bisher:
choose = listbox
feldloch = zu löschendes element
info_db[] = record variable (db wegn assoziation zur datenbank
)
bis her verschiebe ich die nachfolgenden elemte immer um eins nachvorne, nun ist das problem das das letzte und vorletzte element aber gleich ist, logisch. Wie umgehe ich das? bzw wie lösche ich das allerletzte Element vollständig?
weil mit =''; setzen setz ich ja nur den inhalt 0, das is ja doof, ich will das vollständig entfernen!
das hab ich bisher:
Code:
procedure TForm1.deletebuttonClick(Sender: TObject);
begin
x:= choose.items.Count;
feldloch := choose.itemindex;
choose.items.Delete(feldloch);
for t:= feldloch to x DO
BEGIN
naechstes := t +1;
if naechstes > x THEN
BEGIN
info_db[t].kunde := '';
info_db[t].aufgaben := '';
info_db[t].preis := '';
info_db[t].bildpfad := '';
info_db[t].link := '';
info_db[t].ID := 0;
END
Else
Begin
info_db[t] := info_db[naechstes];
End;
End;
end;
choose = listbox
feldloch = zu löschendes element
info_db[] = record variable (db wegn assoziation zur datenbank

bis her verschiebe ich die nachfolgenden elemte immer um eins nachvorne, nun ist das problem das das letzte und vorletzte element aber gleich ist, logisch. Wie umgehe ich das? bzw wie lösche ich das allerletzte Element vollständig?
weil mit =''; setzen setz ich ja nur den inhalt 0, das is ja doof, ich will das vollständig entfernen!