【问题标题】:Delphi Firemonkey ComboBox insert in AdoTableDelphi Firemonkey ComboBox 在 AdoTable 中插入
【发布时间】:2015-11-11 17:29:55
【问题描述】:

所以,我一直在组合框中的两个表之间使用 LiveBindings 来获取外键的 Id 和描述(使用 Item.LookupData 和 Item.text 属性)并将键分配给另一个表中的字段SelectedValue 属性。我猜这工作正常,但我正在使用自定义 dbnavigator 控件来制作“注册表单”。 我正在使用这样的方法进行插入:adotablealuno.FieldValues['Nome']:=editnomeAluno.Text;
但是我找不到如何以这种方式使用组合框,我已经尝试过 ItemIndex 和 Selected 属性,但这些都不起作用(我正在使用 Access DB btw)。我如何在 ComboBox 中使用我的外键?

【问题讨论】:

    标签: delphi combobox firemonkey


    【解决方案1】:

    其实我已经在说这个question了,很长一段时间都没有好的答案。我找到了我目前正在使用的出路。至少我知道我会得到可靠的数据。 您需要以类似的方式处理LinkFillControlToField 链接的OnFillingListItem 事件,并将id 号存储在ComboBox 项目中。我为此目的使用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 链接。

    然后选择此链接并为链接创建一个OnFillingListItem 事件处理程序(在对象检查器中选择事件选项卡并双击OnFillingListItem ComboBox)。将出现事件处理程序(空过程)。它将被命名为TForm1.LinkFillControlToField1FillingListItem(... 这样的名称然后您编写代码将 id 属性设置为项目的标签。

    【讨论】:

    • 我会试试这个。我只是不知道这是来自哪个控件。我把它放在组合框或绑定中?
    • @GuilhermeRaguzzoni 我已经附上了我的答案,但是,我想你已经知道了。
    • 是的,我已经知道了,但是,你做了一个很好的补充 =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多