mysql - 虚拟表编辑特定行而不在Delphi中移动光标
问题描述
我在 Delphi 中有一个虚拟表数据集,可以处理数千行。每次更改数据库后,我使用线程从数据库中获取更改,然后刷新数据集。但这会导致在定位到当前行操作之后移动屏幕(因为我在线程结束后完全更新了虚拟表)。这对眼睛很不方便,有时用户可能会点击错误的行。
所以我决定直接编辑更改的行而不是定位(DataSet.Edit 和 DataSet.Post)。但只有当光标位于特定行上时,我才能做到这一点。如果用户在不同的行上,此方法没有任何意义,因为我必须将光标移动到所需的行,进行更改,然后定位回用户所在的行。这当然会移动屏幕!
你明白我的意思。是否有任何解决方案可以“静默”地编辑 DataSet,这样用户就不会感觉到?谢谢。
解决方案
您可以使用DisableControls禁用对数据源的通知,并在结束任务时使用EnableControls重新激活, DisableControls 和 EnableControls 是 TDataSet 方法
推荐阅读
- c++ - CoTaskMemAlloc() 如何替代 SHGetMalloc()?
- python - 没有阶乘函数在python中做指数逼近
- ffmpeg - 使用 puppeteer 在 Linux 服务器上录制带有声音的 Web 浏览器作为服务
- javascript - 如何通过 Google WebApp 优化对电子表格的查询
- typescript - 对具有谷歌存储功能的服务进行单元测试
- wordpress - 自动处理 WordPress 多站点的 HTTPS
- java - Head First Design Pattern:何时不使用接口(特别是在 Java 的“接口”中)
- php - wow.js 和 animate.css 不适用于 wordpress 主题
- gdb - 在 gdb 中使用 xb 命令解决长度限制
- android - 从其他片段返回到第二个片段