使用 Delphi XE2 的 AnimateWindow

AnimateWindow with Delphi XE2

你好,我在 Delphi XE2 中的 AnimateWindow 功能有问题,问题是当我使用在 windows 外观中找到的 XE2 提供的皮肤时,当使用任何皮肤并与AnimateWindow,程序将window的windows部分正常设计与皮肤融合,最糟糕的是window被冻结,不能移动更多。 代码只有这样:

procedure TForm1.FormCreate(Sender: TObject);
begin
  AnimateWindow(Form1.Handle,200, AW_CENTER);
end;

我该如何解决这个问题?

该问题似乎存在于所有提供'Styles'(XE2 .. X Seattle)的版本中,并且很容易重复如下:

  • 新建 VCL 项目
  • 项目选项 - 外观 - 任何可用样式

添加问题中的代码

procedure TForm2.FormCreate(Sender: TObject);
begin
  AnimateWindow(Form2.Handle,200, AW_CENTER);
end;

和运行。 window 出现在屏幕上,但完全没有响应。 window 上的控件似乎正常工作(到目前为止只有最少的测试)。

解决方法是将 Position 属性 设置为默认值 poDefault 以外的值。

Embarcadero 质量中央搜索没有显示任何报告。我会在做更多调查后提交报告。


已报告,RSP-13459,Window 应用样式后调用 Animate 时冻结Window


更新 24.4.2016 昨天我收到了关于 RSP-13459 的通知:

This issue is fixed for 10.1 Berlin, it does not reproduce it with build 24.0.22088.5349.1.