delphi – 将多个标签设置为透明到1000个表单?

前端之家收集整理的这篇文章主要介绍了delphi – 将多个标签设置为透明到1000个表单?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我用Devexpress打破了我的软件,我发现标签是不透明的,因为它们有灰色的背景.

只有无休止的形式,所以我想知道是否有一种方法来做这个任务(将标签设置为透明)自动.

我以前做过类似的事情,表单上的Devexpress控件有LookAndFeel.NativeStyle = True,我使用Grep Search将其替换为所有dfm表单上的False.然而,在标签的情况下,透明属性不存在.

谢谢.

解决方法

全局屏幕变量跟踪所有窗体:
procedure MakeLabelsTransparent(AParent: TWinControl);
var
  I: Integer;
begin
  with AParent do
    for I := 0 to ControlCount - 1 do
      if Controls[I] is TLabel then
        TLabel(Controls[I]).Transparent := True
      else if Controls[I] is TWinControl then
        MakeLabelsTransparent(TWinControl(Controls[I]));
end;

procedure TMainForm.ActiveFormChange(Sender: TObject);
begin
  with Screen do
    if (ActiveCustomForm <> nil) and (ActiveCustomForm.Tag = 0) then
    begin
      MakeLabelsTransparent(ActiveCustomForm);
      ActiveCustomForm.Tag := 1;
    end;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
  Screen.OnActiveFormChange := ActiveFormChange;
end;

如果您必须使用特定表单的Tag属性,那么请忽略此检查:它的确不会太慢.

原文链接:https://www.f2er.com/delphi/102799.html

猜你在找的Delphi相关文章