![]() |
![]() ![]() ![]() ![]() |
|
Вызов метода по его имениDelphi , Компоненты и Классы , Процедуры и ФункцииВызов метода по его имени
Оформил: DeeCo
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);
private
procedure ExecuteRoutine(Instance: TObject; Name: string);
end;
var
Form1: TForm1;
type
TExecute = procedure of object;
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 = nil then 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;
Привет! В этом коде демонстрируется вызов метода по его имени в языке программирования Delphi. Метод Вот разбивка кода: Класс Метод В методе Наконец, метод В целом, этот код позволяет вызывать методы динамически по их имени. Это часто используется, когда у вас есть много похожих методов и вы не хотите повторять себя, написавая одинаковый код для каждого метода. В статье описывается пример вызова метода Delphi по его имени с помощью процедуры ExecuteRoutine, которая позволяет выполнить любую рутину объекта. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Процедуры и Функции ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||