type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
// Your routines (that you"ll run by name) must be here procedure Hello_World(Sender: TObject);
privateprocedure ExecuteRoutine(Instance: TObject; Name: string);
end;
var
Form1: TForm1;
type
TExecute = procedureofobject;
procedure TForm1.ExecuteRoutine(Instance: TObject; Name: string);
var
Routine: TMethod;
Execute: TExecute;
begin
Routine.Data := Pointer(Instance);
// Returns the address of a published method.
Routine.Code := Instance.MethodAddress(Name);
if Routine.Code = nilthen Exit;
Execute := TExecute(Routine);
Execute;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ExecuteRoutine(Form1, "Hello_World");
end;
procedure TForm1.Hello_World(Sender: TObject);
begin
ShowMessage("This is a test");
end;
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Вызов метода по его имени", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!