我想从互联网上加载包含缩略图的列表。为了获得良好的用户体验,我想首先加载并显示列表的文本,并希望在后台线程中加载列表中的图片。下载图片时,我想在(刷新)列表的对应行中显示它。
实际上,我不知道从哪里开始。我可以先使用TClientDataset
组件加载文本并在后台线程中加载图片,然后将.Locate()
.Edit
.Post
插入数据集吗?
答案 0 :(得分:3)
您可以使用TClientDataSet
直接请求数据,除了图片。因此,主数据的获取应该足够快。
您应该将图片作为计算字段加载。 Documentation说(我自己强调):
计算字段显示运行时计算的值 数据集的
OnCalcFields
事件处理程序。例如,您可以创建一个 字符串字段,显示来自其他字段的连接值。在新建字段对话框中创建计算字段
- 在名称编辑框中输入计算字段的名称。请勿输入现有字段的名称。
- 从类型组合框中选择字段的数据类型。
- 如果适用,请在尺寸编辑框中输入字段的大小。大小仅与
TStringField
,TBytesField
和TVarBytesField
类型的字段相关。- 在字段类型广播组中选择计算或 InternalCalc 。 InternalCalc 仅在使用客户端数据集时可用。这些类型的计算字段之间的显着差异在于,为InternalCalc字段计算的值将作为客户端数据集数据的一部分进行存储和检索。
- 选择确定。新定义的计算字段将自动添加到字段编辑器列表框中持久字段列表的末尾,组件声明将自动添加到表单或数据模块的类型声明中。
- 在数据集的
醇>OnCalcFields
事件处理程序中放置计算字段值的代码。有关编写代码以计算字段值的详细信息,请参阅Programming a calculated field。
在OnCalcFields
事件处理程序中,您需要实现图片的异步加载。