如何在 Delphis LiveBindings 中提取 BindSource 的对象?
How to extract Object of a BindSource in Delphis LiveBindings?
在 Delphi 10.1 中,我有一个名为 DogCollection 的 ObjectList
每个条目都是 TDog 类型,自定义 class.
感谢 malcolm groves 的教程,我能够填充 Stringgrid
与我的 DogCollection。
http://www.malcolmgroves.com/blog/?p=1084
现在我希望能够滚动 stringgrid,每次滚动我都想更新 TDog 类型的变量 "CurrentDog",无论 Object 在 stringgrid 中突出显示。
所以我有一个关于我的 DogObjects 的概述以及我的 Dog 的一个对象
我可以独立 view/manipulate.
我现在没主意了。
如果对您有帮助,我也无法触发 Adapter 的 AfterScroll 事件,即使我使用 RightClick->Add Navigator 添加 Navigator 也无法触发。
感谢您的帮助和时间。
不确定是否理解问题,但我认为您不需要变量 "CurrentDog" 来处理列表的 selected 对象。
您可以为您的狗(姓名、年龄...)创建您需要的所有组件 (TEdit),并将这些组件绑定到您的 TDataGeneratorAdapter(已链接)中的相同字段(姓名、年龄...)到您的 TAdapterBindSource 的 "Adapter" 属性。
然后,当您 select 网格中的一行时,相应的对象会出现在您的编辑组件中。当您修改 "Text" 属性时,网格会更新。
编辑:内部适配器
经过几次搜索,您可以使用 TAdapterBindSource 的 InternalAdapter 获取对象
关于 OnClick 事件:
procedure TForm1.Button1Click(Sender: TObject);
var
Adapter: TBindSourceAdapter;
begin
Adapter:= AdapterBindSource1.InternalAdapter;
CurrentDog:= TDog(Adapter.Current);
end;
在 Delphi 10.1 中,我有一个名为 DogCollection 的 ObjectList 每个条目都是 TDog 类型,自定义 class.
感谢 malcolm groves 的教程,我能够填充 Stringgrid 与我的 DogCollection。
http://www.malcolmgroves.com/blog/?p=1084
现在我希望能够滚动 stringgrid,每次滚动我都想更新 TDog 类型的变量 "CurrentDog",无论 Object 在 stringgrid 中突出显示。
所以我有一个关于我的 DogObjects 的概述以及我的 Dog 的一个对象 我可以独立 view/manipulate.
我现在没主意了。
如果对您有帮助,我也无法触发 Adapter 的 AfterScroll 事件,即使我使用 RightClick->Add Navigator 添加 Navigator 也无法触发。
感谢您的帮助和时间。
不确定是否理解问题,但我认为您不需要变量 "CurrentDog" 来处理列表的 selected 对象。
您可以为您的狗(姓名、年龄...)创建您需要的所有组件 (TEdit),并将这些组件绑定到您的 TDataGeneratorAdapter(已链接)中的相同字段(姓名、年龄...)到您的 TAdapterBindSource 的 "Adapter" 属性。
然后,当您 select 网格中的一行时,相应的对象会出现在您的编辑组件中。当您修改 "Text" 属性时,网格会更新。
编辑:内部适配器
经过几次搜索,您可以使用 TAdapterBindSource 的 InternalAdapter 获取对象
关于 OnClick 事件:
procedure TForm1.Button1Click(Sender: TObject);
var
Adapter: TBindSourceAdapter;
begin
Adapter:= AdapterBindSource1.InternalAdapter;
CurrentDog:= TDog(Adapter.Current);
end;