type tuieventbase=class(TSLUICONST) {** @explan(说明) 消息基类 %% **} uses utslvclauxiliary,utslvclconstant; public Message:integer; Wparam:pointer; Lparam:pointer; Hwnd:pointer; _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; 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 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