gpt4 book ai didi

delphi - 如何在Delphis LiveBindings中提取BindSource的对象?

转载 作者:行者123 更新时间:2023-12-03 15:57:43 25 4
gpt4 key购买 nike

在 Delphi 10.1 中,我有一个名为 DogCollection 的 ObjectList每个条目都是 TDog 类型,一个自定义类。

感谢 Malcolm Groves 的教程,我能够填充 Stringgrid与我的 DogCollection。

http://www.malcolmgroves.com/blog/?p=1084

现在我希望能够滚动字符串网格,每次滚动时我都想更新 TDog 类型的变量“CurrentDog”,以及字符串网格中突出显示的任何对象。

所以我有关于我的 DogObjects 的概述以及我的狗的单个对象我可以独立查看/操作。

此时我已经没有想法了。

如果对您有任何帮助,我也无法触发适配器的 AfterScroll 事件,即使我使用 RightClick->Add Navigator 添加导航器也无法触发。

感谢您的帮助和时间。

最佳答案

不确定是否理解这个问题,但我认为您不需要变量“CurrentDog”来处理列表中选定的对象。

您可以为您的狗创建所需的所有组件(TEdit)(名称、年龄...)并将这些组件绑定(bind)到 TDataGeneratorAdapter 中的相同字段(名称、年龄...)(链接到TAdapterBindSource 的“适配器”属性)。

然后,当您在网格中选择一行时,相应的对象就会出现在您的编辑组件中。当您修改“文本”属性时,网格会更新。

编辑:内部适配器

经过几次搜索,您可以使用 TAdapterBindSource 的 InternalAdapter 获取对象

在 OnClick 事件上:

procedure TForm1.Button1Click(Sender: TObject);
var
Adapter: TBindSourceAdapter;
begin
Adapter:= AdapterBindSource1.InternalAdapter;

CurrentDog:= TDog(Adapter.Current);
end;

关于delphi - 如何在Delphis LiveBindings中提取BindSource的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40845034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com