我做的一个阴影控件,我把它拖到FORM时,在屏幕的左上角上也显示这个控件? 我做的一个阴影控件,可是很怪,我在FORM中设计时,修改它的CAPTION时,在屏幕的左上角上就会显示这人控件是CAPTIN?是什么原因 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是我的代码:unit ShadowLabel;interfaceuses SysUtils, Classes, Controls, StdCtrls,Messages,Windows,Graphics;type T3DEffect=(Normal,Raised,Lowered, Shadowed); TShadowLabel = class(TLabel) private FOffsetX:Integer; FOffsetY:Integer; FStyle3D:T3DEffect; procedure SetOffsetX(const Value: Integer); procedure SetOffsetY(const Value: Integer); procedure SetStyle3D(const Value: T3DEffect); protected { Protected declarations } public Constructor Create(AOwner:TComponent);override; Destructor Destroy;override; procedure DoDrawText(var Rect: TRect; Flags: Longint); override; { Public declarations } published property OffsetX:Integer read FOffsetX write SetOffsetX; property OffsetY:Integer read FOffsetY write SetOffsetY; property Style3D:T3DEffect read FStyle3D write SetStyle3D; { Published declarations } end;procedure Register;implementationprocedure Register;begin RegisterComponents('MyLib', [TShadowLabel]);end;{ TShadowLabel }procedure TShadowLabel.DoDrawText(var Rect:TRect;Flags:Longint);var i,j:integer;begin Inherited; i:=0;j:=0;// InflateRect(Rect,FOffsetX,FOffseY); Case FStyle3D of Raised:Canvas.TextOut(FOffsetX,FOffsetY,Caption); Lowered:Canvas.TextOut(FOffsetX,FOffsetY,Caption); Shadowed:begin while(i<FOffsetX) or (j<FOffsetY) do begin Canvas.TextOut(i,j,Caption); inc(i);inc(j); end;// Canvas.Font.Color:=Color;// Canvas.TextOut(i,j,Caption); end; end;end;Constructor TShadowLabel.Create(AOwner:TComponent);begin inherited; SetOffsetX(0); SetOffsetY(0); SetStyle3D(Normal);end;Destructor TShadowLabel.Destroy;begin// FCanvas.Free; Inherited;end;procedure TShadowLabel.SetOffsetX(const Value: Integer);begin FOffsetX := Value; invalidate;end;procedure TShadowLabel.SetOffsetY(const Value: Integer);begin FOffsetY := Value; invalidate;end;procedure TShadowLabel.SetStyle3D(const Value: T3DEffect);begin FStyle3D := Value; invalidate;end;end. 如何自定义fastreport设计器 版本3.18 idtcpserver判断客户端ip地址变化的问题 如何动态关联事件? IDHttp1的使用 用StringGrid组件向表中输入数据 怎样在使用了数据集的LOCATE定位后,设置dbgrid中定位的行的颜色? 怎样去设计一个串口通讯的程序??? 怎样在窗体上侦测按键按下呢????立即给分 如何将listview中的数据打印出来?谢谢!解决马上给分! 大家都在编什么呀?能说出来参考参考吗?最近不知道编什么了 求教高手 - 怎么模拟硬件的鼠标和键盘操作 SQLServer超时已过期的问题
SysUtils, Classes, Controls, StdCtrls,Messages,Windows,Graphics;type
T3DEffect=(Normal,Raised,Lowered, Shadowed);
TShadowLabel = class(TLabel)
private
FOffsetX:Integer;
FOffsetY:Integer;
FStyle3D:T3DEffect;
procedure SetOffsetX(const Value: Integer);
procedure SetOffsetY(const Value: Integer);
procedure SetStyle3D(const Value: T3DEffect); protected
{ Protected declarations }
public
Constructor Create(AOwner:TComponent);override;
Destructor Destroy;override;
procedure DoDrawText(var Rect: TRect; Flags: Longint); override;
{ Public declarations }
published
property OffsetX:Integer read FOffsetX write SetOffsetX;
property OffsetY:Integer read FOffsetY write SetOffsetY;
property Style3D:T3DEffect read FStyle3D write SetStyle3D;
{ Published declarations }
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('MyLib', [TShadowLabel]);
end;{ TShadowLabel }
procedure TShadowLabel.DoDrawText(var Rect:TRect;Flags:Longint);
var i,j:integer;
begin
Inherited;
i:=0;j:=0;
// InflateRect(Rect,FOffsetX,FOffseY);
Case FStyle3D of
Raised:Canvas.TextOut(FOffsetX,FOffsetY,Caption);
Lowered:Canvas.TextOut(FOffsetX,FOffsetY,Caption);
Shadowed:begin
while(i<FOffsetX) or (j<FOffsetY) do
begin
Canvas.TextOut(i,j,Caption);
inc(i);inc(j);
end;
// Canvas.Font.Color:=Color;
// Canvas.TextOut(i,j,Caption);
end;
end;end;Constructor TShadowLabel.Create(AOwner:TComponent);
begin
inherited;
SetOffsetX(0);
SetOffsetY(0);
SetStyle3D(Normal);
end;
Destructor TShadowLabel.Destroy;
begin
// FCanvas.Free;
Inherited;
end;procedure TShadowLabel.SetOffsetX(const Value: Integer);
begin
FOffsetX := Value;
invalidate;
end;procedure TShadowLabel.SetOffsetY(const Value: Integer);
begin
FOffsetY := Value;
invalidate;
end;procedure TShadowLabel.SetStyle3D(const Value: T3DEffect);
begin
FStyle3D := Value;
invalidate;
end;
end.