在win7 x64中,delphi 5应用程序在面板上显示错误

时间:2011-07-22 09:14:37

标签: delphi

我移动了delphi 5应用程序以赢得7 x64。但是我看到面板显示效果不如Win XP中那样好。我试图修复高度并在OnResize中调整大小,但失败了。假设表格中有2个面板,panel1和panel2。 panel1.align = alleft和panel2.align = alclient。 panel2在panel1中。但在Win 7 x64中,panel2没有完全填充其父级。这是因为delphi太旧了我需要更换新版本吗?

2 个答案:

答案 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;