ielabel.pas
来自「delphi写的一个录制鼠标动作的例子。对需要学习鼠标操作的有一定参考意义。」· PAS 代码 · 共 66 行
PAS
66 行
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 + =
减小字号Ctrl + -
显示快捷键?