DELPHI FAQ: Как выполнить метод по его имени?


Как выполнить метод по его имени?
Previous  Home  Next




{ ... }

type

  PYourMethod = ^TYourMethod;
  TYourMethod = procedure
(S: stringof Object;


procedure
 TMainForm.Button1Click(Sender: TObject);
begin

  ExecMethodByName('SomeMethod'
);
end
;


procedure
 TMainForm.ExecMethodByName(AName: string);
var

  PAddr: PYourMethod;
  M: TMethod;
begin

  PAddr := MethodAddress(AName);
  if
 PAddr <> nil then
  begin

    M.Code := PAddr;
    M.Data := Self;
    TYourMethod(M)('hello'
);
  end
;
end
;


procedure
 TMainForm.SomeMethod(S: string);
begin

  ShowMessage(S);
end





Tip by Sasan Adami




Взято из http://www.lmc-mediaagentur.de/dpool





DELPHI FAQ




EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100