Hi @ all,
ich habe ein problem; (mal wieder)
und zwar habe ich eine ganz normale combo;
Ich möchte aber die einträge filtern; d.h. ich möchte einen text tippen und zeichen nach zeichen nur noch die Listeneinträge übrig lassen, die noch in frage kommen;
Vergleichbar mit der Adressen-Filter-Funktion wie man sie aus dem IE oder FireFox kennt, wenn man in die adressleiste eine
url tippt.
Das problem ist bloß:
ich versuche es zur zeit so:
Ich sammel mit im speicher eine StringList, die komplett gefiltert ist.
Danach weise ich der Combo diese Stringlist zu -> Combo.Items := StringList;
An sich klappt das auch aber:
wenn ich in der Combo autocomplete an habe und die neue Liste zuweise, wir der erste eintrag "ausgewählt".
Das führt dazu, dass die Combo ihren text ändert. (inkl. KeyUp, Down & Pressed)
Darauf reagiere ich dann wieder (text hat sich ja verändert) und die Combo filtert wieder;
Ich löse also ungewollt das Event aus, auf das ich reagieren will.
Das ende vom Lied ist einfach: Den ersten eingebenen Bustaben filtert er richtig. Danach "läuft er so lange" bis der Combo Eintrag der ausgewählt ist genau dem ersten Eintrag ist
Bsp:
[liste]
abc
baa
bca
bcc
cba[/liste]
nun tippe ich ein b ein:
[liste]
baa
bca
bcc[/liste]
Der text der Combo ändert sich auf baa.
löst also das event KeyPressed "a" aus.
[liste]
baa[/liste]
... usw ..
Hat da wer ne idee, wie man das umgeht?!
Bin echt dankbar für jede anregung!
thx & cya
Corelgott