使用LiveBindings选择ListBox后如何访问数据记录

时间:2013-06-04 19:54:38

标签: delphi delphi-xe4 listboxitems livebindings

我有一个TSQLDataset,我使用livebindings将它绑定到列表框。当我点击列表框项目时,我希望能够从记录中访问其他数据字段,但我无法弄清楚如何操作,因为我无法将数据集添加到相应的项目中。
我知道我可以使用ID字段并可能使用实时绑定将其分配给Selected.Tag,但也无法解决这个问题,但如果可以,那么我可以使用另一个SQLQuery,然后只返回结果查询

SELECT * FROM Dataset WHERE ID=(Tag value)

这样可行,但我不知道如何在实时绑定填充列表框时让livebindings设置items标记值。

有谁知道如何使这项工作?

2 个答案:

答案 0 :(得分:1)

将ListBox的Tag属性与记录的ID链接起来更容易。

答案 1 :(得分:-1)

Embacadero在XE5 Samples目录中有一个传感器信息演示应用程序......

TListBox事件中有OnItemClick = lbMainItemClick,您必须定义事件处理程序:

procedure TfrmAboutSensors.lbMainItemClick(const Sender: TCustomListBox; const Item: TListBoxItem);
begin
  if Assigned(Item.OnClick) then
    Item.OnClick(Item);
end;

然后对于列表中的每个项目:

for LItem in LListBox do
begin
    //LItem.ItemData.Accessory := TListBoxItemData.TAccessory.aDetail;  // my code
    //LItem.ItemData.Accessory := TListBoxItemData.TAccessory.aNone;    // my code
    LItem.OnClick := ListBoxItemClick;
end;

如果有帮助,请给我们回电。