Dicas - Como executar um método (procedure/function) pelo nome

Veja nesta dica, como implementar um método (procedure/função) que seja executado pelo nome.

Como executar um método (procedure/function) pelo nome

Aqui está uma dica simples de como executar um método de um objeto Delphi pelo nome:

type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure CallMeByName(Sender: TObject); private procedure ExecMethod(OnObject: TObject; MethodName: string); end; var Form1: TForm1; type TExec = procedure of object; procedure TForm1.ExecMethod(OnObject: TObject; MethodName: string); var Routine: TMethod; Exec: TExec; begin Routine.Data := Pointer(OnObject); Routine.Code := OnObject.MethodAddress(MethodName); if NOT Assigned(Routine.Code) then Exit; Exec := TExec(Routine); Exec; end; procedure TForm1.CallMeByName(Sender: TObject) ; begin ShowMessage('Hello Delphi!'); end; procedure TForm1.Button1Click(Sender: TObject) ; begin ExecMethod(Form1, 'CallMeByName'); end;
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados