首页 > 解决方案 > 虚拟表编辑特定行而不在Delphi中移动光标

问题描述

我在 Delphi 中有一个虚拟表数据集,可以处理数千行。每次更改数据库后,我使用线程从数据库中获取更改,然后刷新数据集。但这会导致在定位到当前行操作之后移动屏幕(因为我在线程结束后完全更新了虚拟表)。这对眼睛很不方便,有时用户可能会点击错误的行。

所以我决定直接编辑更改的行而不是定位(DataSet.Edit 和 DataSet.Post)。但只有当光标位于特定行上时,我才能做到这一点。如果用户在不同的行上,此方法没有任何意义,因为我必须将光标移动到所需的行,进行更改,然后定位回用户所在的行。这当然会移动屏幕!

你明白我的意思。是否有任何解决方案可以“静默”地编辑 DataSet,这样用户就不会感觉到?谢谢。

标签: mysqldelphidatasetvirtual-table

解决方案


您可以使用DisableControls禁用对数据源的通知,并在结束任务时使用EnableControls重新激活, DisableControls 和 EnableControls 是 TDataSet 方法


推荐阅读