【问题标题】:How can I obtain the dataset row for the selected item of FMX.ListView.TListView?如何获取 FMX.ListView.TListView 的选定项的数据集行?
【发布时间】:2018-05-02 21:05:05
【问题描述】:

我的问题与 Delphi 10.2 Tokyo 中 Firemonkey TListView 的使用有关。

我有一个带有 ListView 的 FMX 表单,其中 ItemAppearance.ItemApearance = 允许我添加任意数量的 TTextObjectAppearance 项目。

TListView 通过 TBindSourceDB 对 TFDQuery 字段进行实时绑定。我的所有字段都按我希望的方式显示在 ListView 中。

我不希望向用户显示来自该查询的主键,但我确实希望能够在用户选择列表视图中的项目后接收主键。

目标是能够在 TFDQuery 数据集中找到包含生成下一个屏幕所需的其他信息列的行。

非常感谢您的建议。提前致谢。

【问题讨论】:

  • 我认为这个Q and A 可能有用
  • 同时考虑this answer(链接错字已更正)
  • 非常感谢@asd-tm 有效!我将根据yours在下面添加一个答案。

标签: delphi firemonkey delphi-10.2-tokyo


【解决方案1】:

基于 asd-tm 评论的 TListView 解决方案对我有用。

有关原始帖子,请参阅this

procedure TForm1.LinkFillControlToFieldPKFillingListItem(Sender:
    TObject; const AEditor: IBindListEditorItem);
begin
  (AEditor.CurrentObject as TListItem).Tag := FDQuery1.FieldByName('PK').AsInteger;
end;


procedure TForm1.ListView1ItemClick(const Sender: TObject; const
    AItem: TListViewItem);
begin
  FDQuery1.IndexFieldNames := 'PK';
  FDQuery1.SetKey;
  FDQuery1.FieldByName('PK').AsInteger := AItem.Tag;
  if FDQuery1.GotoKey then
    //...
end;     

【讨论】:

    猜你喜欢
    • 2016-06-21
    • 1970-01-01
    • 2017-04-15
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    相关资源
    最近更新 更多