BIB*_*IBD 3 delphi firemonkey delphi-xe8
我注意到,当我禁用控件 ( controlName.enabled := false;) 时,它们会自动变为半透明。
有什么办法可以迫使他们保持不透明吗?
我已经尝试过了controlName.Opacity := 1;,但这似乎没有任何作用。
我还尝试将控件嵌入到 TLayout 中,然后禁用 TLayout,但半透明似乎是由嵌入式控件拾取的。
[编辑]
这是我所看到的一个示例,在本例中,它覆盖了包含大国会大厦 F 的 TLabel。
将您的控件(TRectangle)设置为hittest := false;
它将不再捕获鼠标事件,而父控件将会捕获。对于其他控件,您可以将其与 结合使用Tabstop:=false。现在它不会获得焦点,因此大多数功能将被禁用。
您可以将其设置DisabledOpacity为 1。
请参阅将两个按钮添加到表单的示例:
procedure TForm2.Button2Click(Sender: TObject);
begin
Button1.DisabledOpacity := 1;
Button1.Enabled := not Button1.Enabled;
end;
Run Code Online (Sandbox Code Playgroud)
这是一个受保护的成员,因此您必须覆盖代码中的控件。
TButton = class(FMX.Stdctrls.TButton)
//
end;
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
551 次 |
| 最近记录: |