急!!!! 加下划线的Label(100分)

  • 主题发起人 主题发起人 maxim
  • 开始时间 开始时间
M

maxim

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:
我想编写一个带下划线的Label控件,可是不管我怎么搞都看不到线,请各位大侠
给俺瞧瞧:(如果分不够我还可以加)
unit mxLabelLine;

interface

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

type
TmxLabelLine = class(TLabel)
private
FmLine: TShape;
procedure WMSize (var Message: TWMSize); message WM_SIZE;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner:TComponent);override;
destructor Destroy;override;
published
{ Published declarations }
property mLine: TShape read FmLine;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('MxDBTools', [TmxLabelLine]);
end;

{ TmxLabelLine }

constructor TmxLabelLine.Create(AOwner: TComponent);
begin
inherited;
FmLine := TShape.Create (Self);
FmLine.Visible := TRue;
FmLine.Top:=Self.Top+self.Height+2;
FmLine.Height :=1;
FmLine.Pen.Color:=$000080FF;
// ControlStyle := ControlStyle - [csSetCaption];
end;

destructor TmxLabelLine.Destroy;
begin
FmLine := nil;
inherited Destroy;
end;

procedure TmxLabelLine.WMSize(var Message: TWMSize);
var
MinWidth: Integer;
begin
inherited;
if width < MinWidth then
width := MinWidth
else
if FmLine <> nil then
begin
FmLine.SetBounds(0,height+2,Width+2,1)
end;
end;

end.
 
constructor TmxLabelLine.Create(AOwner: TComponent);
begin
inherited;
FmLine := TShape.Create (Self);
FmLine.Top:=Self.Top+self.Height+2;
FmLine.Height :=1;
FmLine.Pen.Color:=$000080FF;
FmLine.Visible := TRue; /// 这样行不。
// ControlStyle := ControlStyle - [csSetCaption];
end;
 
晕,什么控件哟,没看到你画线呀,如果你直接用TLabel,只要把字体设成有下划线的就可以了,为什么还要哪么麻烦,
 
To:duhai_lee
你那个方法不行的!
To:lqcros
是一个Label与一个Shape组成的,Shape当线使用,不是Label.Caption的下划线
 
也不应该用WM_SIZE这个消息三
 
这个问题已经解决了!
 
来自:lqcros, 时间:2006-7-14 14:30:15, ID:3505605
晕,什么控件哟,没看到你画线呀,如果你直接用TLabel,只要把字体设成有下划线的就可以了,为什么还要哪么麻烦,


这样不行吗?楼主不钻牛角尖阿
 
楼主是高人,我们不用这么自找麻烦.支持楼上的.
 
这是我想实现的目的,不是各位说的那样。如果只是把字体设置成下划线我也不用麻烦各位!
 
我还是要感谢各位!好久没有上来了,论坛里面的人还是那么热情
 
后退
顶部