![]() |
AW: Ein Eintrag aus einer Listbox entfernen
Ja, jetzt klappt es. vielen Dank an euch allen!
|
AW: Ein Eintrag aus einer Listbox entfernen
Wenn du einen bestimmten Item löschen willst, dann
Delphi-Quellcode:
Wenn du einen ausgewählten Item löschen willst
var
i: Integer; begin i := 2; //Beispiel für das dritte Item if I > -1 then if I < ListBox1.Items.Count then ListBox1.Items.Delete(I); end;
Delphi-Quellcode:
Solltest du mit Multiselect mehrere Items löschen willst, denn
if ListBox1.ItemIndex > -1 then
ListBox1.Items.Delete(ListBox1.ItemIndex);
Delphi-Quellcode:
Achte aber dabei IMMER, dass du runterzählst, sonst kommt der maximaler Index Fehler. Grund, wenn der erst und letzte Item gewählt sind und du den ersten Item löscht, ändert sich die Position des letzten Items. Wenn du runterzählst ist es egal.
var
i: Integer; begin for i := ListBox1.Items.Count - 1 downto 0 do if ListBox1.Selected[I] then ListBox1.Items.Delete(I); end; |
AW: Ein Eintrag aus einer Listbox entfernen
Zitat:
|
AW: Ein Eintrag aus einer Listbox entfernen
Zitat:
//edit: Ich möchte dies keinesfalles als schönen Stil propagieren - doch ist es mir wichtig, bei solchen Aussagen wie "mache nie dies oder jenes" wenigstens eine kurze Erläuterung zu liefern. |
AW: Ein Eintrag aus einer Listbox entfernen
Daniel, das Problem sind die Typecasts: Dann ist gibt es neben TRUE und FALSE auch Werte, die zwar wie TRUE aussehen, sich aber merkwürdig verhalten. Das ist aber ein anderes Thema.
|
AW: Ein Eintrag aus einer Listbox entfernen
Ich mache mal ein neues Thema auf. ;-)
//edit: Spannend. Ich sehe gerade, dass sich in Delphi das Verhalten geändert hat. Meine Beispiele von XE2 liefern unter Delphi 2007 andere Ergebnisse. Unter XE2 konnte ich gestern Abend casten wie ich wollte und hatte stets das korrekte Resultat, unter D2007 sieht das schon anders aus. |
AW: Ein Eintrag aus einer Listbox entfernen
Zitat:
Da wäre es ohne IF wesentlich benutzerfreundlicher.
Delphi-Quellcode:
Denn so oder so, es wird nichts gelöscht, obwohl man was löschen will.
var
i: Integer; begin i := 2; //Beispiel für das dritte Item ListBox1.Items.Delete(I); end; Nur daß dabei einfach nichts passiert ... nichtmal eine Fehlermeldung. Besser den Fehler beheben (aufpassen, daß i den korrtekten Wert bekommt), als den Fehler still und heimlich zu verschweigen, wo sich bestenfalls jemand wundert, daß irgendwas fehlt. (falls es überhaupt auffiehl, daß was nicht stimmte). Das ist ja fast so schlimm wie ein
Delphi-Quellcode:
try
// wichtige Daten speichern, welche unbedingt gespeichert den müssen // oder wichtigen Befehl ausführen, welcher unbedingt ausgeführt werden sollte // oder ... except end; // keiner hast was gemerkt |
AW: Ein Eintrag aus einer Listbox entfernen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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