加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 10:08:36 所属栏目:大数据 来源:网络整理
导读:我用Devexpress打破了我的软件,我发现标签是不透明的,因为它们有灰色的背景. 只有无休止的形式,所以我想知道是否有一种方法来做这个任务(将标签设置为透明)自动. 我以前做过类似的事情,表单上的Devexpress控件有LookAndFeel.NativeStyle = True,我使用Grep S
我用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属性,那么请忽略此检查:它的确不会太慢.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读