以下代码是关闭我的应用程序。
procedure TfrmMain.btnClose1Click(Sender: TObject);
var
i : Integer;
begin
for i := 255 downto 0 do begin
frmMain.AlphaBlendValue := i;
application.ProcessMessages;
end;
Close;
end;
将 Windows 性能设置为“让 Windows 选择...”</p>
- 当使用上面的代码关闭我的 Delphi 应用程序时,淡入淡出几乎是瞬间的(最多可能是 ¼ 秒,如果我眨眼我会错过过渡)。
如果我将性能选项设置为“调整以获得最佳性能”</p>
- 退出同一个应用程序时,淡入淡出需要 12 秒以上。
- 使用相同的代码但注释掉 AlphaBlendValue 更改可以消除延迟。
我在 Delphi 2010 和 DelphiXE2 上对此进行了测试,结果是一样的。如果这有什么不同的话,这是在 Windows 7 Ultimate 64bit 上测试的。
至少可以说这种行为让我感到困惑。
- 我认为 forms Alpha 属性由 GPU 处理,因此不会受到旨在最大化 CPU 性能的 Windows 性能设置的影响。
因此,就这一点而言,我不确定这是 Windows 7 错误、Delphi 错误还是只是我缺乏知识。
至于修复...有没有办法判断 Windows 是否在垃圾图形/最大性能模式下运行,以便我可以在我的应用程序中禁用 Alpha 淡入淡出效果?
为清楚起见进行编辑:虽然我想修复淡入淡出,但我真正想要的是一种确定 Windows 性能设置的方法。
我正在寻找如何确定特定的 Windows 设置 - 当您进入 Windows 性能选项时,有 3 个选项卡。在第一个选项卡“视觉效果”上有 3 个预设选项和第 4 个选项用于“自定义”。至少我试图确定选择的选项是否是“调整以获得最佳性能”,如果我可以更好地确定此选项卡上的设置。
感谢任何帮助。