Вставка Delphi Firemonkey ComboBox в AdoTable

Итак, я использовал LiveBindings между двумя таблицами в комбинированном ящике, чтобы получить Id и Description внешнего ключа (со свойствами Item.LookupData и Item.text) и назначить ключ полю в другой таблице с помощью свойства SelectedValue., Я думаю, это работает нормально, но я использую пользовательские элементы управления dbnavigator, чтобы создать "регистрационную форму". Я использую такие методы, чтобы сделать вставки: adotablealuno.FieldValues['Nome']:=editnomeAluno.Text;
Но я не могу найти, как использовать комбинированный список таким образом, я уже пробовал свойства ItemIndex и Selected, но ничего из этого не работает (я, кстати, использую Access DB). Как я могу использовать мой внешний ключ в ComboBox для этого?

1 ответ

Решение

На самом деле я уже задавал этот вопрос, и долгое время не было хорошего ответа. Я нашел выход, который сейчас использую. По крайней мере, я знаю, что получу достоверные данные. Вы должны справиться OnFillingListItem событие LinkFillControlToField ссылка аналогичным образом и хранить идентификационный номер в ComboBox Предметы. я использую Tag свойство для этой цели, хотя это на самом деле не хорошо.

procedure TForm1.LinkFillControlToField1FillingListItem(Sender: TObject;
  const AEditor: IBindListEditorItem);
begin
  (AEditor.CurrentObject as TListBoxItem).Tag :=
    YourLookuptable.FieldByName('id').AsInteger;
end;

А затем получить идентификатор элемента из ListBox1.Selected.Tag. Доступ к текстовому значению можно получить через ComboBox1.Selected.Text,

Добавив.

Вы делаете так LinkFillControlToField ссылка на сайт.

Затем вы выбираете эту ссылку и создаете OnFillingListItem обработчик события для ссылки (выберите вкладку событий в Инспекторе объектов и дважды щелкните OnFillingListItem Поле со списком). Появится обработчик события (пустая процедура). Будет дано имя как TForm1.LinkFillControlToField1FillingListItem(... Затем вы пишете код, устанавливающий свойство id для тегов элементов.

Другие вопросы по тегам