Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ComboBox Einträge zählen und durchsuchen (https://www.delphipraxis.net/138426-combobox-eintraege-zaehlen-und-durchsuchen.html)

aaaaaaaaaa_10 10. Aug 2009 09:43


ComboBox Einträge zählen und durchsuchen
 
Ich habe eine ComboBox. Wie kann ich die einträge nach bestimmten Kriterien durchsuchen?

implementation 10. Aug 2009 09:45

Re: ComboBox Einträge zählen und durchsuchen
 
Ich würde sagen, du gehst mit einer Schleife alle Einträge (TCombobox.Items) durch und durchsuchst die Strings nach deinen Kriterien (bspw. mit MatchesMask)

aaaaaaaaaa_10 10. Aug 2009 09:52

Re: ComboBox Einträge zählen und durchsuchen
 
Delphi-Quellcode:
while pos (inttostr(integer(Schnittstelle)),SchnittstelleComboBox1.Items[ind]) = 0 do
        inc(ind);
        if pos(inttostr(integer(Schnittstelle)),SchnittstelleComboBox1.Items[ind]) <> 0 then
          ShowMessage(SchnittstelleComboBox1.Items[ind]);
Ok, dann bekomme ich jetzt den richtigen Eintrag,aber wie komme ich an den entsprechenden ItemIndex?

EDIT: Nehm ich zurück. Ist natürlich in ind. :wall:

patti 10. Aug 2009 16:51

Re: ComboBox Einträge zählen und durchsuchen
 
Wenn ich das richtig sehe, musst du aufpassen, dass dein "ind" durch die Schleife nicht zu groß wird und du eine Zugriffsverletzung bekommst:

Zitat:

Zitat von aaaaaaaaaa_10
Delphi-Quellcode:
while pos (inttostr(integer(Schnittstelle)),SchnittstelleComboBox1.Items[ind]) = 0 do
        inc(ind);

Es kann ja passieren, dass die Bedingung zum Beenden der Schleife ( Pos(...) <> 0 ) nie erfüllt wird, wenn der Substring in keinem Combobox-Item gefunden wird. Dann wird "ind" durch das inkrementieren zu groß und es gibt nicht genügend Items in der Combobox. Dies ist natürlich nicht der Fall, wenn du SICHER weißt, dass die Bedingung eintritt, allerdings solltest du evtl. auf Nummer sicher gehen und eine Abfrage einbauen ;-)

Patti


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz