我第一次编写控件 ( 积分: 100 )

  • 主题发起人 主题发起人 luckysammo
  • 开始时间 开始时间
L

luckysammo

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好,我的图片控件继承了TGraphicControl类,主要是有三种状态:正常,移动,按下,相信大家都用过了很多这样的软件,象wmp,Realone等:
Private
FGraphics:TBitmap;
Proctected
procedure SetGraphics(Value:TBitmap);
Published
property Graphics:TBitmap read FGraphics write SetGraphics;

procedure 控件名.SetGraphics(Value:TBitmap);
var
sRect:TRect;
begin
FGraphics.Assign(Value);
if FGraphics<>nil then
begin
//以下为'正常'状态
sRect.left:=0;
sRect.top:=0;
sRect.bottom:=FGraphics.height;
sRect.Right:=FGraphics.Width div 3;
CopyRect(clientrect,FGraphics,sRect);
end;
end;

注:以上都是我凭记忆默写的代码,所以不是很完善,但大概思想,我想大家应该知道吧.
因为我准备了有三种状态的图片,截取了图片,控件无法透明,所以希望大家能帮帮忙,就是能让我的控件可以透明.
问题: 要让控件能象TImage控件一样可以有透明的属性.
小弟第一次编写控件,请大家帮帮忙,多谢
 
大家好,我的图片控件继承了TGraphicControl类,主要是有三种状态:正常,移动,按下,相信大家都用过了很多这样的软件,象wmp,Realone等:
Private
FGraphics:TBitmap;
Proctected
procedure SetGraphics(Value:TBitmap);
Published
property Graphics:TBitmap read FGraphics write SetGraphics;

procedure 控件名.SetGraphics(Value:TBitmap);
var
sRect:TRect;
begin
FGraphics.Assign(Value);
if FGraphics<>nil then
begin
//以下为'正常'状态
sRect.left:=0;
sRect.top:=0;
sRect.bottom:=FGraphics.height;
sRect.Right:=FGraphics.Width div 3;
CopyRect(clientrect,FGraphics,sRect);
end;
end;

注:以上都是我凭记忆默写的代码,所以不是很完善,但大概思想,我想大家应该知道吧.
因为我准备了有三种状态的图片,截取了图片,控件无法透明,所以希望大家能帮帮忙,就是能让我的控件可以透明.
问题: 要让控件能象TImage控件一样可以有透明的属性.
小弟第一次编写控件,请大家帮帮忙,多谢
 
var
sRect:TRect;
Bmp: TBitmap;
begin
FGraphics.Assign(Value);
if FGraphics<>nil then
begin
//以下为'正常'状态
sRect.left:=0;
sRect.top:=0;
sRect.bottom:=FGraphics.height;
sRect.Right:=FGraphics.Width div 3;

if Transparent then //注:你要先定义透明属性Transparent
begin
Bmp := TBitmap.Create;
Bmp.Width := sRect.Right;
Bmp.Height := sRect.bottom;
Bmp.Canvas.CopyRect(clientrect,FGraphics, Bmp.Canvas.ClipRect);
Bmp.Transparent := True;
Canvas.Draw(0, 0, Bmp);
Bmp.Free;
end
else
CopyRect(clientrect,FGraphics,sRect);
 
多谢,现在终于可以了!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
791
DelphiTeacher的专栏
D
后退
顶部