powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Найти метод в классе
3 сообщений из 3, страница 1 из 1
Найти метод в классе
    #32081121
_guest_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть определение класса
TMyClass = class
private
public
constructor Create;
published
procedure DoAny;
end;

вопрос:
можно ли оределить наличие такого метода в классе (и вызвать его)?
про TypInfo известно (и как получить свойство по имени, тоже)
но нужна именно такая реализация (если возможно)
Спасибо
...
Рейтинг: 0 / 0
Найти метод в классе
    #32081124
_guest_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть определение класса
TMyClass = class
private
public
constructor Create;
published
procedure DoAny;
end;

вопрос:
можно ли оределить наличие такого метода в классе (и вызвать его)?
про TypInfo известно (и как получить свойство по имени, тоже)
но нужна именно такая реализация (если возможно)
Спасибо
...
Рейтинг: 0 / 0
Найти метод в классе
    #32081179
manumba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
type
TMyMethod = procedure of object;

TMyClass = class //Твой класс из которого нужно вызвать метод по имени
public
constructor Create;
published//Вызываются только методы из этого раздела
procedure DoAny;
end;
....

function TForm1.GetMethod(aMethodName: string): TMethod;
begin
result.Code := TMyClass.MethodAddress(aMethodName);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
o: TMyMethod;
begin
o:=TMyMethod(GetMethod('DoAny'));;//Получаем наш метод по имени
o;//Выполняем метод
end;

....
initialization
RegisterClasses([TMyClass]);
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Найти метод в классе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]