在AdoTable中插入Delphi Firemonkey ComboBox

时间:2015-11-11 17:29:56

标签: delphi combobox firemonkey

因此,我一直在组合框中的两个表之间使用LiveBinding来获取外键的ID和描述(使用Item.LookupData和Item.text属性)并将键分配给另一个字段中的字段具有SelectedValue属性的表。我猜这很好,但是我使用自定义dbnavigator控件来制作一个"注册表单"。 我使用这样的方法来制作插页:adotablealuno.FieldValues['Nome']:=editnomeAluno.Text;
但我不知道如何以这种方式使用组合框,我已经尝试过ItemIndex和Selected属性,但这些都没有用(我使用的是Access DB顺便说一句)。我怎样才能在ComboBox中使用我的外键?

1 个答案:

答案 0 :(得分:2)

实际上我已经说明了question并且很长一段时间都没有好的答案。我找到了一条目前正在使用的出路。至少我知道我会获得可靠的数据。 您需要以相同的方式处理OnFillingListItem链接的LinkFillControlToField事件,并在ComboBox项目中存储ID号。我为此目的使用Tag属性,虽然它实际上并不好。

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

然后从ListBox1.Selected.Tag中获取项ID。可以通过ComboBox1.Selected.Text访问文本值。

<强>追加。

您制作了类似的LinkFillControlToField链接。 enter image description here

然后选择此链接并为链接创建OnFillingListItem事件处理程序(在Object Inspector中选择事件选项卡,然后双击OnFillingListItem ComboBox)。将出现事件处理程序(空过程)。它将被赋予类似TForm1.LinkFillControlToField1FillingListItem(...的名称然后您将代码设置id属性设置为项目&#39;标签