Einzelnen Beitrag anzeigen

Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
176 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: ComboBox mit mehreren Spalten?

  Alt 28. Mai 2007, 22:48
Hallo Carsten,

du hast eine Combo mit den Paaren ID, Personalname und eine Tabelle mit einem ID-Feld? Wenn du über die Tabelle scrollst, suchst du mit dem ID-Feld der Tabelle in der Combo, stimmt das soweit?

Nehmen wir an du suchst über einen Integer (Code so aus dem Kopf)

Delphi-Quellcode:

procedure <DeineForm>.SearchInCombo(Value:integer);
var
  i: integer;
begin
  for i := 0 to <ComboBox>.Items.Count-1 do begin
    if (integer(<ComboBox>.Items.Objects[i])=Value) then begin
      <ComboBox>.ItemIndex := i;
      Break;
    end;
  end;
end;
Ist deine ID ein String, dann musst du den Code eben schnell auf String-Werte anpassen. Du kannst in den Beiträgen weiter oben nachschauen.

Jedoch hast du für diese Lösung immer noch das Problem, das für nicht gefundene IS-Werte, zumindest der letzte Wert angezeigt wird. Sollte dies nicht gewünscht sein, so musst du anstatt dem Break ein Exit verwenden und am Ende der Schleife den ItemIndex auf -1 setzen.

Delphi-Quellcode:

procedure <DeineForm>.SearchInCombo(Value:integer);
var
  i: integer;
begin
  for i := 0 to <ComboBox>.Items.Count-1 do begin
    if (integer(<ComboBox>.Items.Objects[i])=Value) then begin
      <ComboBox>.ItemIndex := i;
      Exit;
    end;
  end;
  <ComboBox>.ItemIndex := -1;
end;
BTW: Warum nimmst du nicht zwei Tabellen (die Tabelle mit dem ID-Feld hast du schon, fehlt noch die 2. Tabelle mit den Werten für ID und Personalname), einen Query zur Suche in der 2. Tabelle und einer Ausgabe über ein Label oder ein ReadOnly-Editfeld. Dies könnte viel schneller sein, natürlich abhängig von der Anzahl der Daten.
Gruss Gremlin
  Mit Zitat antworten Zitat