Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Combobox beliebigen Wert löschen (https://www.delphipraxis.net/122642-combobox-beliebigen-wert-loeschen.html)

thiagojonas 19. Okt 2008 20:05


Combobox beliebigen Wert löschen
 
Also ich habe vollgendes Problem:

Ich habe eine Edit-Komponente und eine Combobox mit Werte drinne.

Ich möchte nun, dass wenn der eingebene Text der Edit-Komponente in der Combobox enthalten ist, dass dieser Wert gelöscht wird.

Delphi-Quellcode:
form1.kunden_cb.Items.Delete(form1.kunden_cb.ItemIndex);
Funktioniert schonmal, aber nicht wie oben beschrieben.

Wenn ich statt des "ItemIndex" einfach "text" einsetzte funktioniert es auch nicht. :wall:

Help,Help, I need somebody's help :-)

Danke

bigben37 19. Okt 2008 20:12

Re: Combobox beliebigen Wert löschen
 
Ich würde es mit einer for-Schleife machen:
Delphi-Quellcode:
for i:=0 to kunden_cb.Items.Count -1 do
  begin
    if kunden_cb.items[i] = edit1.text then
      kunden_cb.Items.Delete(i);
  end
Itemindex gibt den Index des gerade markierten Wertes an.

mkinzler 19. Okt 2008 20:13

Re: Combobox beliebigen Wert löschen
 
Es wird auch der aktuelle gelöscht. Den Index des gesuchten Textes kannst du mit .IndexOf() ermitteln

Hawkeye219 19. Okt 2008 20:45

Re: Combobox beliebigen Wert löschen
 
@bigben37

Dein Code wird Probleme verursachen, falls das gesuchte Element tatsächlich in der Liste enthalten ist.

Durch das Löschen des Elements verkürzt du die Liste. Bei FOR-Schleifen wird der Schleifenendwert vor dem Eintritt in die Schleife einmalig berechnet, du greifst also am Ende auf nicht mehr vorhandene Listenelemente zu.

Beim Löschen sollte man eine solche Schleife deshalb immer rückwärts laufen lassen.

Gruß Hawkeye

thiagojonas 20. Okt 2008 13:20

Re: Combobox beliebigen Wert löschen
 
Danke Leute , klappt super

bigben37 20. Okt 2008 15:47

Re: Combobox beliebigen Wert löschen
 
@Hawkeye219:

Stimmt, das hab ich nicht bedacht, aber ich wusste auch nicht, dass es .IndexOf() gibt :oops: , damit gehts natürlich viel einfacher. :!:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 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