gpt4 book ai didi

delphi - FireMonkey 中的 AlphaBlend

转载 作者:行者123 更新时间:2023-12-03 15:04:05 24 4
gpt4 key购买 nike

如何在 FireMonkey 桌面应用程序中更改(表单的)AlphaBlend 值?嗯,它在 VCL 应用程序中可用,但我在 FireMonkey 中找不到它。

屏幕截图:

enter image description here

最佳答案

要使表单背景半透明,您应该将表单 Transparency 属性设置为 true 并使用 Fill.Color 和 alpha 值,如 $AAFFFFFF(使用Fill.Kind = bkSolid)。在这种情况下,表单边框变得不可见(至少在 Delphi XE2 中)

如果您需要使表单中的所有组件半透明,则使用 Align = alContentsTLayout 放置在表单上,​​并将其 Opacity 属性设置为必需值。

enter image description here

如果您需要像 VCL 中那样具有 alpha 混合的半透明窗口,您可以使用与 getWindowLong/SetWindowLong 相同的方法(对于 Windows 平台)。将 transparency 设置回 false 并在表单 OnCreate 事件处理程序中使用如下代码:

implementation
uses fmx.platform.win, winapi.windows;
{$R *.fmx}

procedure TMainForm.FormCreate(Sender: TObject);
var h : HWND;
aStyle : integer;
alphaValue : byte;
begin
h := WindowHandleToPlatform(self.Handle).Wnd;
AStyle := GetWindowLong(h, GWL_EXSTYLE);
SetWindowLong(h, GWL_EXSTYLE, AStyle or WS_EX_LAYERED);


AlphaValue := 125;
SetLayeredWindowAttributes(h, 0, alphaValue, LWA_ALPHA);
end;

当然,您的所有组件也会变得透明。

关于delphi - FireMonkey 中的 AlphaBlend,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20699032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com