procedure TForm1.FormCreate(Sender: TObject);
var
myMemo:TMemo;
myEdit:TEdit;
i: integer;
begin
myMemo:=TMemo.Create(nil);
with myMemo do
begin
parent:=Form1;
left:=100;
top:=100;
// onMouseDown:=btn;
end;
myEdit:=TEdit.Create(nil);
with myEdit do
begin
parent:=Form1;
left:=300;
top:=100;
onMouseDown:=btn;
end;
for i := 0 to form1.ControlCount-1 do
begin
//这里列出所有响应onMouseDown的
if (Form1.Controls[i] is TEdit) then
(Form1.Controls[i] as TEdit).onMouseDown := btn;
if (Form1.Controls[i] is TMemo) then
(Form1.Controls[i] as TMemo).onMouseDown := btn;
end;
end;
var
i: integer;
begin
for i := 0 to form1.ComponentCount-1 do
begin
if Form1.Components[i] is TWinControl then
TWinControl(Form1.Components[i] ).OnMouseDown := YourEvent;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
myMemo:TMemo;
begin
myMemo:=TMemo.Create(nil);
with myMemo do
begin
parent:=Form1;
left:=100;
top:=100;
onMouseDown:=btn;
end;
end;
to all:Twincontrol没有直接提出OnMouseDown事件,所以直接给TwinControl赋值OnmouseDown事件是根本不会触发的!我想ljmanage只是把现成的代码中事件的名字改了一下就认为可以了,事实上我肯定经过思考和实践才来问问题的,我想回答问题的不要抱着想当然的态度来回答问题,可笑还有不少人“想当然”以为是对的,却不会去试试