Hallo, ich habe eine DBLookupCombobox in meinem Programm. Nun möchte ich aus der Listsource ein weiteres Feld auslesen (nicht anzeigen).
Wie mache ich das?
Bsp:
Listsource:
OID (Integer
KontaktArt (String)
KontaktTyp (Integer)
Die Kontaktart wird angezeigt und übernommen (ist so OK), bei Auswahl soll aber ebenfalls der KontaktTyp übergeben werden.
Der KontaktTyp ist nicht eindeutig, d.h. ein Typ kann mehrfach vorhanden sein!
Wenn in der DBLookUpCombobox die 'Kontaktart' gewählt wird, stehen automatisch die dazugehörigen Datenfelder
des Datensatzes zur Verfügung.
Du kannst also den zugehörigen 'Kontakttyp' ganz einfach abgreifen.
Eventuell das dann im OnSelect oder OnCloseUp.
uses: ...., Dialogs, ....
procedure TForm1.DBLookupComboBox1Select(Sender: TObject);
begin
if DBF1.Locate('MTH_NAME',DBLookUpComboBox1.Text, []) then
showmessage(DBF1ID.AsString);
end;
procedure TfrmEditKontakt.DBLookupComboBox1Select(Sender: TObject);
begin
if DBLookupComboBox1.ListSource.DataSet.Locate('kontaktart',DBLookUpComboBox1.Text, []) then
ShowMessage(DBLookupComboBox1.ListSource.DataSet.FieldByName('kontakttyp').AsString);
end;
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.