我正在从数据库中获取一些数据并使用 Grid 向用户显示。由于数据量非常大,将数据加载到网格需要几秒钟。我试图在加载数据的过程中显示加载光标符号。
锁定网格();// 这将禁用控件,因此用户无法进行任何事件。
// 要在此处显示加载符号。
开始更新数据
解锁网格();//释放控件
任何想法来实现这一点。谢谢
我正在从数据库中获取一些数据并使用 Grid 向用户显示。由于数据量非常大,将数据加载到网格需要几秒钟。我试图在加载数据的过程中显示加载光标符号。
锁定网格();// 这将禁用控件,因此用户无法进行任何事件。
// 要在此处显示加载符号。
开始更新数据
解锁网格();//释放控件
任何想法来实现这一点。谢谢
不
Screen.Cursor := crHourGlass;
try
// Do the job
finally
Screen.Cursor := crDefault;
end;
做这份工作?
但是,您可能还需要考虑将工作放在单独的线程中。毕竟,如果您不这样做,您的 UI 将在整个工作期间变得无响应。
根据网格的类型,您可能还可以在加载数据BeginUpdate
之前和之后调用。EndUpdate
这可能会显着加快这一进程。
另一种方法是使用 OnProgress 回调来为图标设置动画,或者增加进度条,就像在这个问题中一样: How to see progress of query execution during handle?