AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Löschen einzelner Items einer ListBox

Ein Thema von Kratos · begonnen am 21. Okt 2019 · letzter Beitrag vom 24. Okt 2019
 
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Löschen einzelner Items einer ListBox

  Alt 22. Okt 2019, 08:23
Eine Möglichkeit wäre ein Array zu verwenden (geht nur, wenn die Listbox sich nicht sortiert, ansonsten muss das Array auch mit sortiert werden!).
Code:
var
  aArray: array of bool; //Bool ist nur eine Empfehlung
Das Array müsste (idealerweise) immer die Größe haben, wieviele Items es in der Listbox gibt.
Code:
setlength(aArray, Listbox.items.count);
So das Listboxitem 0 = aArray[0] wäre.

Beim löschen/schreiben musst du dann das Array natürlich jedesmal mit anpassen.
Hinzufügen
1. Den Eintrag in die Listbox hinzufügen
2. die Länge des Array neu definieren
3. Den entsprechenden Eintrag im Array anpassen. z.B. (ungetestet):
Code:
Listbox.items.add('ITEMTEXT');
setlength(aArray, Listbox.items.count);
iItem := Listbox.IndexOf('Eintrag');
aArray[iItem] := True; //(True = darf gelöscht werden, False = darf nicht gelöscht werden)
//optional, wenn du das "X" (leider nur als Haken möglich) haben willst:
//CheckListbox.items[iItem].checked := aArray[iItem];
Löschen
Code:
iItem := ListBox.ItemIndex; //Position zwischenspeichern
if aArray[iItem] then //Prüfung
begin
  //darf gelöscht werden
  ListBox.Items.Delete(iItem);
  //Achtung das Array muss auch angepasst werden!
  for i := iItem + 1 to length(aArray) do //Array durchlaufen und aufrücken
  begin
    aArray[i - 1] := aArray[i];
  end;
  aArray := length(aArray) - 1;
end else
begin
  //darf nicht gelöscht werden -> Fehlermeldung?
end;
Alles nur aus dem Gedächtnis und kann Fehler enthalten
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas (22. Okt 2019 um 09:03 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz