?? ielabel.pas
字號:
unit IELabel;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,shellapi,
StdCtrls;
const
OpenError='Occur error when open ';
ErrorCodeStr='Error Code:';
type
EShellExecError=class(Exception);
TIELabel = class(TLabel)
private
PMouseEnter:TNotifyEvent;
PMouseLeave:TNotifyEvent;
pMouseDown:TNotifyEvent;
pAddress:String;
procedure MouseEnterProc(var msg:TMessage);message CM_MOUSEENTER;
procedure MouseLeaveProc(var msg:TMessage);message CM_MOUSELEAVE;
procedure MouseDownProc(var msg:TMessage);message WM_LBUTTONDOWN;
protected
{ Protected declarations }
public
{ Public declarations }
published
property Address:string Read pAddress Write pAddress;
property OnMouseEnter:TNotifyEvent Read PMouseEnter Write PMouseEnter;
property OnMouseLeave:TNotifyEvent Read PMouseLeave Write PMouseLeave;
property OnMouseDown:TNotifyEvent Read pMouseDown Write pMousedown;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Lodgue', [TIELabel]);
end;
procedure TIELabel.MouseEnterProc (var msg:TMessage);
begin
if Assigned(PMouseEnter) then PMouseEnter(Self);
Font.Color:=clBlue;
end;
procedure TIELabel.MouseLeaveProc (var msg:TMessage);
begin
if Assigned(PMouseLeave) then PMouseLeave(Self);
Font.Color:=clBlack;
end;
procedure TIELabel.MouseDownProc(var msg:TMessage);
var
ErrorCode:integer;
begin
inherited;
if Assigned(pMouseDown) then pMouseDown(Self);
if pAddress='' then Exit;
ErrorCode:=shellExecute(0,nil,pchar(pAddress),nil,nil,0);
if ErrorCode<=32 then
raise EShellExecError.Create(OpenError+pAddress+'. '+ErrorCodeStr+IntToStr(ErrorCode));
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -