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