Combobox Eintrag auswählen

MaxMara

Mitglied
Hallo!

Ich bräuchte einen kleinen Denkanstoß für folgendes Problem:

Eine Combobox hat mehrere Einträge, die jeweils so aussehen:

text1 | 123
text2 | 322
usw usf...

Jetzt möchte ich in ein Editfeld z.B. 322 eingeben und 'OnChange' vom Editfeld soll die Combobox den Eintrag 'text2 | 322' markieren.

Bin für alle Ratschläge dankbar.

Ciao
Christian
 
Eine Combobox hat mehrere Einträge, die jeweils so aussehen:

text1 | 123
text2 | 322

Hi,

versuch folgendes (vereinfacht dargestellt):

in Edit1.OnChange:
var
StrHilfe : string;
NumIndex : integer;
Boolgefunden : boolean;
begin
NumIndex:=0;
boolGefunden:=false;
while (not BoolGefunden) and (NumIndex <ComboBox1.Items.Count) do begin
StrHilfe:= ComboBox1.Items[NumIndex];
if Pos(Edit1.Text, StrHilfe) > 0 then begin
boolGefunden:=true;
ComboBox1.ItemIndex:=NumIndex;
end else begin
Inc(NumIndex);
end;
end; { while }
....

Der Einfachheit halber habe ich hier nur Pos() verwendet, das ist natürlich gefährlich, wenn Teil-Zeichenfolgen in verschiedenen Einträgen vorhanden sind.
Würde beispielsweise 2 eingegeben, dann würde text1 | 322 natürlich einen Treffer liefdern.
Du mußt das Programm entsprechend an dieser Stelle etwas verfeinern.
Evtl. solltes Du überlegen, ob OnChange wirklich die richtige Stelle ist.
Vielleicht eignet sich ja auch onExit.
Oder aber du baust noch eine Abfrage ein, dass beim OnChange erste geprüft wird, wenn eine bestimmte Anzahl an Zeichen eingegeben wurde.....

Hilft das weiter?
 

Neue Beiträge

Zurück