如何这样传递消息?(100分)

  • 主题发起人 主题发起人 czx_china
  • 开始时间 开始时间
C

czx_china

Unregistered / Unconfirmed
GUEST, unregistred user!
我自己做了一个控件,就是在PANEL上加了一个IMAGE做显示,我现在遇到这样的问题,当鼠标点控件的时候,实际上是点在IMAGE上,我现在就是要把点鼠标这个信息(onMouseDown,onMouseMove,onMouseUp)传给PANEL做相应的事件,改怎么做?
 
简单。
pnData.OnMouseDown := Image1.OnMouseDown;
.....
 
你这样根本不对
在PANEL的OnMouseDown,要有事情要做
 
你没有说清楚。可以这样试一下。
在Image控件的OnMouseDown中这样调用
procedure TForm1.Image1MouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
begin
Panel1MouseDown(Sender, Button,Shift, X, Y);
end;
这样就传递过去了。然后再在Panel中进行处理,其他事件采取相同的办法。
 
不行啊
Sender好象传过去的是TImage
 
主要Panel1MouseDown(Sender, Button,Shift, X, Y)里面的Sender检测不出来是控制本身
 
procedure TLdf.hMouseDown(Sender: TObject;
Button: TMouseButton;Shift: TShiftState;
X, Y: Integer);
begin
Self.OnMouseDown(Self, Button,Shift, X, Y);
end;
为什么触发事件的Sender传递是错误的,该怎么样才能把TLdf类Sender参数传递过去?
 
将Panel的相应消息映射到Image中即可
 
多人接受答案了。
 
后退
顶部