2

我正在从数据库中获取一些数据并使用 Grid 向用户显示。由于数据量非常大,将数据加载到网格需要几秒钟。我试图在加载数据的过程中显示加载光标符号。

锁定网格();// 这将禁用控件,因此用户无法进行任何事件。

// 要在此处显示加载符号。

开始更新数据

解锁网格();//释放控件

任何想法来实现这一点。谢谢

4

2 回答 2

4

Screen.Cursor := crHourGlass;
try
  // Do the job
finally
  Screen.Cursor := crDefault;
end;

做这份工作?

但是,您可能还需要考虑将工作放在单独的线程中。毕竟,如果您不这样做,您的 UI 将在整个工作期间变得无响应。

根据网格的类型,您可能还可以在加载数据BeginUpdate之前和之后调用。EndUpdate这可能会显着加快这一进程。

于 2013-09-26T16:05:31.740 回答
1

另一种方法是使用 OnProgress 回调来为图标设置动画,或者增加进度条,就像在这个问题中一样: How to see progress of query execution during handle?

于 2013-09-26T20:20:19.873 回答