在Delphi10.1中,我有一个名为ObjectList的DogCollection,每个条目的类型都是TDog,这是一个自定义类。
多亏了malcolm groves的教程,我才能用我的DogCollection填充一个Stringgrid。
http://www.malcolmgroves.com/blog/?p=1084
现在,我希望能够在字符串网格中滚动,每次滚动时,我都希望从TDog类型中更新变量“TDog”,并在字符串网格中突出显示任何对象。
所以我有一个关于我的DogObjects的概述,也是我的狗狗的一个对象,我可以独立地查看/操作它。
在这一点上,我没有想法了。
如果这对您有任何帮助,我也不能让适配器的AfterScroll事件触发,即使我用RightClick-> Adapter添加了一个Navigator。
谢谢你的帮助和时间。
发布于 2016-11-28 18:02:15
不一定要理解这个问题,但我认为您不需要有一个变量"CurrentDog“来处理列表中选定的对象。
您可以为您的狗创建所需的所有组件(TEdit) (名称、年龄.)并将这些组件绑定到相同的字段(名称、年龄.)在您的TDataGeneratorAdapter中(它链接到TAdapterBindSource的"Adapter“属性)。
然后,当您在网格中选择一行时,相应的对象将出现在编辑组件中。当您修改"Text“属性时,网格将被更新。
编辑: InternalAdapter
经过几次搜索,您可以使用InternalAdapter of TAdapterBindSource获取对象。
在OnClick事件上:
procedure TForm1.Button1Click(Sender: TObject);
var
Adapter: TBindSourceAdapter;
begin
Adapter:= AdapterBindSource1.InternalAdapter;
CurrentDog:= TDog(Adapter.Current);
end;https://stackoverflow.com/questions/40845034
复制相似问题