procedure TForm2.SetClick(obj: TObject; EventName: string);
var
pp : PPropInfo;
t:TNotifyEvent;
begin
pp:=GetPropInfo(obj.ClassInfo,EventName);
if assigned(pp) then begin
t:=Self_Click;
SetMethodProp(obj,EventName,TMethod(t));
end;
end;大家看看这代码,pp使用完后,要不要释放呢?不释放会不会泄漏内存??
var
pp : PPropInfo;
t:TNotifyEvent;
begin
pp:=GetPropInfo(obj.ClassInfo,EventName);
if assigned(pp) then begin
t:=Self_Click;
SetMethodProp(obj,EventName,TMethod(t));
end;
end;大家看看这代码,pp使用完后,要不要释放呢?不释放会不会泄漏内存??
指向了一个地址,这个地址不是你的程序分配的,是编译器创建对象时分配的,你不调用上面这句话,他依然存在。你的程序写成这样也是可以的procedure TForm2.SetClick(obj: TObject; EventName: string);
var t:TNotifyEvent;
begin
if assigned(GetPropInfo(obj.ClassInfo,EventName)) then
begin
t := Self_Click;
SetMethodProp(obj,EventName,TMethod(t));
end;
end;