tslediter/funcext/tvclib/tuieventbase.tsf

161 lines
3.6 KiB
Plaintext

type tuieventbase=class(TSLUICONST)
{**
@explan(说明) 消息基类 %%
**}
uses utslvclauxiliary,utslvclconstant;
public
Message:integer;
Wparam:pointer;
Lparam:pointer;
Hwnd:pointer;
[weakref]_tag;
{**
@param(Message)(integer|any) 消息id %%
@param(Wparam)(pointer) 消息wparam %%
@param(Lparam)(pointer) 消息lparam %%
@param(Hwnd)(pointer) 窗口句柄 %%
**}
private
Fhwparam;
Flwparam;
Fhlparam;
Fllparam;
//有符号数
Fuhwparam;
Fulwparam;
Fuhlparam;
Fullparam;
//结果
FSkip;
Fresult;
[weakref]FSender;
function setSkip(v);
begin
if v then
begin
FSkip := true;
end else
begin
FSkip := false;
end
end
function GetSender();
begin
return FSender;
end
Function SetSender(v);
begin
return FSender := v;
end
public
//FLparamdata;
//FWparamdata;
function create(m,w,l,h);virtual;
begin
{**
@explan(说明) 消息构造 %%
@param(m)(integer) 消息id %%
@param(w)(pointer) 消息wparam %%
@param(l)(pointer) 消息lparam %%
@param(h)(pointer) 窗口句柄 %%
**}
Message := m;
Wparam := w;
Lparam := l;
Hwnd := h;
end
function expandinfo();virtual; //作为函数参数展开
begin
//返回二维数组,字段 name ,var,alias,type
return array();
end
function hilparam();
begin
{**
@explan(说明) 高字节 %%
**}
if ifnil(Fhlparam)then
begin
lowuperdword(Lparam,Fllparam,Fhlparam);
end
return Fhlparam;
end
function lolparam();
begin
{**
@explan(说明) 低字节 %%
**}
if ifnil(Fllparam)then
begin
lowuperdword(Lparam,Fllparam,Fhlparam);
end
return Fllparam;
end
function hiwparam();
begin
{**
@explan(说明) 高字节 %%
**}
if ifnil(Fhwparam)then
begin
lowuperdword(Wparam,Flwparam,Fhwparam);
end
return Fhwparam;
end
function lowparam();
begin
{**
@explan(说明) 低字节 %%
**}
if ifnil(Flwparam)then
begin
lowuperdword(Wparam,Flwparam,Fhwparam);
end
return Flwparam;
end
function hilparamsigned();
begin
{**
@explan(说明) 高字作为符号数
**}
if ifnil(Fuhlparam)then Fuhlparam := unsignedtosigned(hilparam());
return Fuhlparam;
end
function lolparamsigned();
begin
{**
@explan(说明) 低字作为符号数
**}
if ifnil(Fullparam)then Fullparam := unsignedtosigned(lolparam());
return Fullparam;
end
function hiwparamsigned();
begin
{**
@explan(说明) 高字作为符号数
**}
if ifnil(Fuhwparam)then Fuhwparam := unsignedtosigned(hiwparam());
return Fuhwparam;
end
function lowparamsigned();
begin
{**
@explan(说明) 低字作为符号数
**}
if ifnil(Fulwparam)then Fulwparam := unsignedtosigned(lowparam());
return Fulwparam;
end
property msg read Message;
property skip read FSkip write setSkip;
property Result read Fresult write Fresult;
property Handle read Hwnd write Hwnd;
property Sender read GetSender write SetSender;
{**
@param(msg)(integer) 消息id %%
@param(skip)(bool) 是否忽略底层消息处理函数 %%
@param(Result)(integer) 消息处理返回 %%
@param(Handle)(pointer) 窗口句柄 %%
@param(sender)(TControl) 发送消息的控件,如菜单消息的触发窗口 %%
**}
end