我有一个大约有 10 个窗口的 Delphi7 项目。MainWindow 在程序启动时被加载。一段时间后,MainWindow 访问项目的另一个窗口以添加 listview 项目并大约每 1-2 秒更新它们。然而,这个窗口似乎冻结了,并且在我打开它之后根本不显示列表视图。
如果我在 MainWindow 的 OnShow 过程中有以下命令,它就可以工作:
SecondWindow.Show;
SecondWindow.Close;
它可以正常工作,但似乎不专业。有什么想法可以在不显示的情况下绘制窗口吗?
编辑:代码(我使用 Indy9)
procedure TMainWindow.ServerSocketExecute(AThread: TIdPeerThread);
begin
/....
if Buffer = 'additem' then begin
Window2.ListView1.Items.Add;
Exit;
// .....
end;
end;
而已。我删除了 Window2 上的所有计时器,它似乎仍然冻结。如果添加了项目,或者当我第一次尝试打开第二个窗口时,主窗口会立即冻结。