Альтернативным решением является использование TComboBox, а не TDBLookupComboBox.Используйте TDictionary для определения простого поиска в памяти.
type
TMyForm = class(TForm)
MyComboBox: TComboBox;
MyDataset: TSimpleDataSet;
procedure MyComboBoxChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
ComboLookup: TDictionary<string, Char>;
end;
implementation
{$R *.dfm}
procedure TMyForm.FormCreate(Sender: TObject);
var
Key: string;
begin
ComboLookup := TDictionary<string, Char>.Create;
ComboLookup.Add('Drivers License', 'A');
ComboLookup.Add('Passport', 'B');
ComboLookup.Add('Library Card', 'C');
for Key in ComboLookup.Keys do
begin
MyComboBox.Items.Add(Key);
end;
end;
procedure TMyForm.MyComboBoxChange(Sender: TObject);
begin
// This may be wrong didn't bother to look
//up the correct way to change a field's value in code.
MyDataset.Fields.FieldByName('IDCard').AsString := ComboLookup[MyComboBox.Text];
end;
Вы можете использовать TComboBox.Items.AddObject вместо отдельной таблицы поиска, но вам нужно будет создать класс-оболочку для хранения символа в качестве объекта TObject или использовать Chr для преобразования его в целое число, а затемприведите его к TObject, но вышесказанное, на мой взгляд, проще.