Autovervollständigen in der ComboBox
-
Hallo,
In meiner ComboBox stehen sehr viele Einträge drin. Gibt es die Möglichkeit,dass man wie bei der Adressleiste vom Internet Explorer eine Autovervollständigen Funktion hat, wenn man was in die ComboBox reinschreibt?
Gruß Luke
-
Klar. bei jedem Tastendruck wertest du das Property TComboBox::Text neu aus und schaust nach dem ersten Vorkommnis in den Items... (rate mal welche Funktion du dafür verwenden kannst? (-; )
-junix
-
Ab BCB6 gibt's bei der ComboBox auch ne Eigenschaft "AutoComplete".
-
hab leider nur den bcb5
-
@ junix: welche denn?
luke
-
@junix: TStrings != AnsiString
-
@luketjm: Warst du nicht der mit der Frage nach den doppelten Einträgen? Du solltest einige Erkenntnisse mal zusammenführen (-;
@Webfritzi ich weiss. Why?
-junix
-
Die doppelten Einträge habe ich so verhindert:
void FillComboBox(AnsiString str) { bool exist=false; for(int i=0; i<Form1->ComboBox1->Items->Count; i++) if(str==Form1->ComboBox1->Items->Strings[i]) exist=true; if(!exist) Form1->ComboBox1->Items->Add(str); }
Wie soll mir das helfen? *dummstell*
luke
-
Original erstellt von junix:
@Webfritzi ich weiss. Why?Naja, wegen AnsiPos und so. Aber das geht hier nicht so gut.
-
Ahso, jetzt weiß ich, wie junix das meint. Geh wieder so ne Schleife (am besten while) durch und finde so die erste Übereinstimmung raus.
@junix: Ich dachte, du wolltest ihm sagen, es gäbe schon eine vorgefertigte Funktion für sowas.
-
Gibts auch.. aber bei TStrings und ned bei AnsiString.. (da würds auch wenig sinn machen) TStrings::IndexOf war schon immer dein freund.
-junix
-
Deiner wohl nicht.
-
Ach ja ich erinnere mich
-
Hä? TStrings::IndexOf() ist nicht zur Autovervollständigung zu gebrauchen! Das meinte ich mit meinem "Deiner wohl nicht".
-
Hmmm Stimmmt... das war ja bei der MFC-Liste welche mit "FindString" nach dem ersten Element suchte, das mit dem Suchstring anfängt...
-junix
-
Ohhh, da gibt's wohl mal was, was MFC hat und VCL nicht.
-
ähh? hallo? ich versteh nix mehr. hat den jmd nun eine lösung?
luke
-
Du selbst?
-junix
-
Schau mal da:
http://www.bytesandmore.de/rad/cpp/snipp/sc02030.php