首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何绘制delphi分组框以获得透明背景

如何绘制delphi分组框以获得透明背景
EN

Stack Overflow用户
提问于 2008-09-30 18:43:03
回答 4查看 3.9K关注 0票数 3

我正在尝试一些非常微妙的东西,它现在看起来很糟糕。我正在尝试绘制一个TGroupBox的背景,我已经重载了它的绘制函数,这样角就可以通过它们的父对象显示出来。我有一堆嵌套的组框,没有XPThemes它们看起来很不错。

有没有办法在运行时将背景的一部分绘制为透明。我正在编写表单生成器,而不是使用Delphi设计视图。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-09-30 19:02:02

我尝试通过以下步骤重现这个问题:

1-将主题设置为Windows XP默认值

2-将对齐放在空表单上( TGroupBox = alNone)

3-使用align = alBottom和TGroupBoxes = alClient将两个对齐放入第一个对齐

但从视觉上看,它对我来说很好。

你能提供更多关于你是如何设计表单的信息吗?从.DFM粘贴一些代码就可以了。

以下是我的DFM的相关部分:

代码语言:javascript
运行
复制
  object GroupBox1: TGroupBox
    Left = 64
    Top = 56
    Width = 481
    Height = 361
    Margins.Left = 10
    Caption = 'GroupBox1'
    ParentBackground = False
    TabOrder = 0
    object GroupBox2: TGroupBox
      Left = 2
      Top = 254
      Width = 477
      Height = 105
      Align = alBottom
      Caption = 'GroupBox2'
      TabOrder = 0
    end
    object GroupBox3: TGroupBox
      Left = 2
      Top = 15
      Width = 477
      Height = 239
      Align = alClient
      Caption = 'GroupBox3'
      TabOrder = 1
    end
  end
票数 1
EN

Stack Overflow用户

发布于 2008-09-30 20:21:55

当我遇到这样的情况时,我最初使用TGroupBox,但后来决定使用TPaintBox (在本例中称为pb )并模拟TGroupBox的图形部分。

代码语言:javascript
运行
复制
procedure TfraNewRTMDisplay.pbPaint(Sender: TObject);
const
  icMarginPixels=0;
  icCornerElipsisDiameterPixels=10;
begin
  pb.Canvas.Pen.Color:=clDkGray;
  pb.Canvas.Pen.Width:=1;
  pb.Canvas.Pen.Style:=psSolid;
  pb.Canvas.Brush.Color:=m_iDisplayColor;
  pb.Canvas.Brush.Style:=bsSolid;
  pb.Canvas.RoundRect(icMarginPixels,
                      icMarginPixels,
                      pb.Width-icMarginPixels*2,
                      pb.Height-icMarginPixels*2,
                      icCornerElipsisDiameterPixels,
                      icCornerElipsisDiameterPixels);
end;
票数 2
EN

Stack Overflow用户

发布于 2008-10-02 14:21:36

哈,这太差劲了,我只需要在我的构造函数中不设置ParentBackground := false,并在适当的时候绘制分组框的内部。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/154387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档