delphi:父窗体是MDIForm,一个子窗体是MDIChild,其中子窗体中有个过程Procedure OnMouseWheel。
ProcedureOnMouseWheel(VarMsg:TMsg;varHandled:Boolean);但是子窗体的OnCreate事件里面好像写applicatio...
Procedure OnMouseWheel(Var Msg: TMsg; var Handled: Boolean);但是子窗体的OnCreate事件里面好像写application.OnMessage := OnMouseWheel,就出错了。应该怎么写。(出错是access violation什么的)
那个错误是当子窗体关闭的时候出现的。 展开
那个错误是当子窗体关闭的时候出现的。 展开
展开全部
1、感觉是你OnMouseWheel的内容写的有问题。application.OnMessage := OnMouseWheel,你这么一写,Application就按照你OnMouseWheel定义的消息过滤方式来处理消息了。
2、不明白你一个响应鼠标滚轮的小小事件,用得着动用application.OnMessage么?看来Delphi屏蔽消息循环的弱智做法,害了好多人。
type
TForm1 = class(TMDIChild)
Panel1: TPanel;
private
procedure WMMouseWheel(var Message: TWMMouseWheel);
message WM_MOUSEWHEEL;
public
{ Public declarations }
end;
procedure TForm1.WMMouseWheel(var Message: TWMMouseWheel);
begin
if Message.WheelDelta > 0 then
//响应向前滚动
else //响应向后滚动;
end;
2、不明白你一个响应鼠标滚轮的小小事件,用得着动用application.OnMessage么?看来Delphi屏蔽消息循环的弱智做法,害了好多人。
type
TForm1 = class(TMDIChild)
Panel1: TPanel;
private
procedure WMMouseWheel(var Message: TWMMouseWheel);
message WM_MOUSEWHEEL;
public
{ Public declarations }
end;
procedure TForm1.WMMouseWheel(var Message: TWMMouseWheel);
begin
if Message.WheelDelta > 0 then
//响应向前滚动
else //响应向后滚动;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询