var i:integer;
begin
for i:=0 to self.ComponentCount-1 do
begin
Components[i].OnMouseMove:=myDrag.onMouseMove;//此名该如何写?主要是要每个控件上的OnMouseMove指向我自己的OnMouseMove。 end;
end;
begin
for i:=0 to self.ComponentCount-1 do
begin
Components[i].OnMouseMove:=myDrag.onMouseMove;//此名该如何写?主要是要每个控件上的OnMouseMove指向我自己的OnMouseMove。 end;
end;
var i:integer;
begin
for i:=ComponentCount-1 downto 0 do do
begin
try
Components[i].OnMouseMove:=你的过程名;
except
end;
end;
end;
Components[i].OnMouseMove:=你的过程名;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,typinfo;type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure MyMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.MyMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
ShowMessage('Mouse on '+Sender.ClassName+' x:'+IntToStr(x)+',y:'+IntToStr(y));
end;procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
temp:PPropInfo;
x:TMethod;
begin
TMouseMoveEvent(x):=MyMouseMove;
for i:=0 to self.ComponentCount-1 do
begin
temp:=nil;
temp:=GetPropInfo(self.Components[i],'OnMouseMove');
if temp<>nil then
begin
//SetVariantProp(Components[i],'OnMouseMove',MyMouseMove);
SetMethodProp(Components[i],temp,x);
end;
end;
end;end.
我同时也试成功了mousedown,mouseup。
再问一声,要是onClick的事件该如何写?
var
I: Integer;
begin
for I := 0 to ComponentCount - 1 do
if Components[I] is TWinControl then
begin
(Components[I] as TForm).OnMouseDown := myDrag.OnMouseDown;
(Components[I] as TForm).OnMouseMove := myDrag.OnMouseMove;
(Components[I] as TForm).OnMouseUp := myDrag.OnMouseUp;
(Components[I] as TForm).OnClick := myDrag.OnClick;
end;
end;
var i:integer;
begin
for i:=ComponentCount-1 downto 0 do do
begin
try
Components[i].OnMouseMove:=你的过程名;
except
end;
end;
end;
begin
for i:=0 to Owner.ComponentCount-1 do
Components[i].OnMouseMove:=myDrag.onMouseMove;
end;不过忠告你一句:用这种方法来实现拖动是很危险的。因为在很多别的地方开发者都需要OnMouseMove这个事件,你不应该占用它。如果需要这么做,那就应该使用钩子或者把父窗体子类化。
作 者: skynew2004 (总想让别人帮我一下。skynew.ys168.com)
等 级:
信 誉 值: 105
所属社区: Delphi VCL组件开发及应用
问题点数: 20
回复次数: 14
发表时间: 2005-2-2 21:34:50 做个控件,只要用户用我的控件就能扁历当前用户的设计窗口中的所有控件并设置其属性。
在程序设计中我已经能做到,但在控件制作中我不会,也就是如何能到当前用户窗口中的控件的有关信息等。
不知有没有大虾能帮帮我?分不够再加。
看来这贴没必要再回了