delphi - 使用 Delphi XE2 的 AnimateWindow

标签 delphi winapi delphi-xe2 gdi

您好,我在Delphi XE2中的AnimateWindow功能有问题,问题是当我使用XE2在Windows外观中提供的皮肤时,当使用任何皮肤并与AnimateWindow结合时,程序混合了正常的设计 window 部分 window 带有蒙皮,最糟糕的是 window 被冻住了,不能多动。 代码只有这样:

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

如何解决这个问题?

最佳答案

该问题似乎存在于提供“样式”的所有版本(XE2 .. X Seattle)中,并且可以轻松地重复如下:

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

添加问题中的代码

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

然后运行。该窗口出现在屏幕上,但完全没有响应。窗口上的控件似乎工作正常(到目前为止仅进行了最少的测试)。

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

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

<小时/>

已报告,RSP-13459,应用了样式的窗口在调用 AnimateWindow 时卡住

<小时/>

2016 年 4 月 24 日更新昨天我收到了有关 RSP-13459 的通知:

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

关于delphi - 使用 Delphi XE2 的 AnimateWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34777320/

相关文章:

delphi - 没有可以使用这些参数调用的 'SendMsg' 的重载版本

delphi - 如何将我的应用程序置于最前面?

windows - 名称中带有冒号的文件会发生什么情况?

delphi 仅调试我的源代码

multithreading - 如何在Delphi中进行异步编程?

delphi - 使用 fontdialog 和 RichEdit 更改事件控件

delphi - 有什么区别 - Delphi 在接口(interface)或实现之后使用单元?

delphi - 如何将 AnsiString 转换为 TBytes,反之亦然?

winapi - 如何让 CreateProcess/CreateProcessW 在路径 > MAX_PATH 字符中执行进程

winapi - PE 101 windows api调用地址的解释