我移动了delphi 5应用程序以赢得7 x64。但是我看到面板显示效果不如Win XP中那样好。我试图修复高度并在OnResize中调整大小,但失败了。假设表格中有2个面板,panel1和panel2。 panel1.align = alleft和panel2.align = alclient。 panel2在panel1中。但在Win 7 x64中,panel2没有完全填充其父级。这是因为delphi太旧了我需要更换新版本吗?
答案 0 :(得分:1)
我见过这样的东西,虽然通常涉及一些比两个面板更复杂的布局。在适当的位置添加少量panel.Realign;
个调用(即在表单的OnShow
事件中)已经为我修复了它。
答案 1 :(得分:1)
我认为在屏幕上显示表单时会出现此类问题,其状态最大化。是你的情况吗?
我所做的就是我创建的表单不是最大化,而是在屏幕中心,然后在显示表单后添加自定义消息:
TMyForm = class(TForm)
(...)
procedure WMUser(var Msg: TMessage); message WM_USER;
(...)
procedure TMyForm .FormShow(Sender: TObject);
begin
(...)
PostMessage(Handle,WM_USER,0,0); // avoid Vista and Seven screen refresh bug
end;
procedure TMyForm .WMUser(var Msg: TMessage);
begin
WindowState := wsMaximized;
end;