哪里透明的TSplitter控件?(150分)

  • 主题发起人 主题发起人 ccw128
  • 开始时间 开始时间
C

ccw128

Unregistered / Unconfirmed
GUEST, unregistred user!
我的Form上放了一个TSplitter控件,在使用中发现,如果直接调用如下语句:

Form.Canvas.Draw(0, 0, Bitmap);

向Form画图,那么TSplitter控件所占用的空间上面画的部分图象无法显示,请问如何
能使TSplitter实现透明的效果不影响画图,或者有没有第三方的透明TSplitter控件
可以使用?
 
flatstyle控件包里面好像是有的,你看一下
 
这个其实很简单,你可以修改TSplitter控件或者对TSplitter做一下简单扩展(使其透明),
如下:
-----------------------------------------------------------------------------
unit Splitter1;

interface

uses
Windows, Messages, SysUtils, Classes, Controls, ExtCtrls;

type
TSplitter1 = class(TSplitter)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
constructor create(AOwner:TComponent);override;
published
{ Published declarations }
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('ThrsVCL', [TSplitter1]);
end;

{ TSplitter1 }

constructor TSplitter1.create(AOwner: TComponent);
begin
inherited create(AOwner);
ControlStyle := ControlStyle - [csOpaque];
end;
end.
-----------------------------------------------------------------------------
 

加入下面的语句:

Splitter1.ControlStyle :=Splitter1.ControlStyle-[ csOpaque]
 
要理解 TSplitter 的意图和功能,为什么要在TSplitter下画图。
 
后退
顶部