unit URLLabel;interfaceuses
  Windows,
  SysUtils,
  Messages,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  Menus,
  StdCtrls,
  Shellapi,
  ExtCtrls;
{QGraphics模块是Font.Style:= [fsUnderline];必须用的
Shellapi模块是ShellExecute必须用的
Forms模块是Application必须用的
Windows模块是SW_NORMAL必须用的}
type
  TURLLabel = class(TLabel)
  private
    { Private declarations }
    FUrl: String;
  protected
    { Protected declarations }
    procedure Click;override;
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published declarations }
    property Url: String read FUrl write FUrl;
  end;procedure Register;implementationconstructor TUrlLabel.Create(AOwner:TComponent);
begin  inherited Create(AOwner);  Cursor:=crHandPoint;  Font.Style:= [fsUnderline];
  
end;
procedure TUrlLabel.Click;begin  ShellExecute(Application.Handle, nil, PChar(Url), nil, nil,SW_NORMAL);  inherited;end;
destructor TUrlLabel.Destroy;
begin
  inherited Destroy;
end;  { Destroy }procedure Register;
begin
  RegisterComponents('Arvid', [TURLLabel]);
end;end.

解决方案 »

  1.   

    我是曾经删除过这个控件,然后再添加的!在第二次添加的时候我,先把dclusr包的我自己的控件都删除后compile,面板里面就能删除掉那个Arvid面板了,我于是把Arvid在控件面板中删除掉.我后来有把注册的控件面板改成别的也不好使,我该怎么做啊?谢谢!
      

  2.   

    ShellExecute(0, 'open', pchar(FUrl), nil, nil,SW_SHOWNORMAL);
      

  3.   

    我把RegisterComponents('Arvid', [TURLLabel]);
    改成了'tiao',[TURLLabell]
    同时对应的定义和代码里面的TURLLabel--------->TURLLabell
    就是都在TURLLabel后面加多一个l就解决了问题!但是我如何要回我原来的TURLLabel这个名称啊?难道...永远石沉大海啊?
      

  4.   

    试一下删除其产生过的.dcu后再编译一下看看
      

  5.   

    .dcu这个是不是在我的控件的代码那里的?我删除过的!我每次添加的时候都删除的!