Vielleicht so?
Delphi-Quellcode:
while not ADOQuery1.Eof do begin
ComboBox1.AddItem(ADOQuery1.FieldByName('BEZEICHNUNG').AsString,
TObject(ADOQuery1.FieldByName('MANDANT').AsInteger));
ADOQuery1.Next;
end;
...
ShowMessage(Format('%d', [Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex])]);
Ist Mandant wirklich ein String? Dann würde ich es so implementieren (vielleicht nicht gerade einfacher, aber
IMHO sauberer und verständlicher).
Delphi-Quellcode:
TMandant = class(TObject)
private
FMandant: string;
FBezeichnung: string;
public
constructor Create(const aMandant: string;
const aBezeichnung: string); reintroduce;
property Mandant: string read FMandant;
property Bezeichnung: string read FBezeichnung;
end;
...
while not ADOQuery1.Eof do begin
ComboBox1.AddItem(ADOQuery1.FieldByName('BEZEICHNUNG').AsString,
TMandant.Create(ADOQuery1.FieldByName('MANDANT').AsString,
ADOQuery1.FieldByName('BEZEICHNUNG').AsString)));
ADOQuery1.Next;
end;
...
ShowMessage(TMandant(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).Mandant);
Grüße