-
Предположим в коде я пишу строку
MyButton.OnClick:=MySuperMethod
Как программно получить имя метода MySuperMethod. Возможно ли такое?
-
Только если метод published. Тогда
MethodAddress
.
-
К тому же, нужно будет знать, какому объекту принадлежит этот метод.
-
Да мне имени пока достаточно
-
Расскажите историю, возможно вам имя не понадобится, скорее адрес.
-
> Priest © (20.12.06 17:52)
> Предположим в коде я пишу строку
> MyButton.OnClick:=MySuperMethod
> Как программно получить имя метода MySuperMethod. Возможно
> ли такое?
Никак.
-
procedure TForm1.FormCreate(Sender: TObject);
begin
with TMethod(MyButton.OnClick), TObject(Data) do
Caption := Format('%s : %s', [ClassName, MethodName(Code)])
end;
-
А можно ли динамически вызвать publisher метод. Например я пишу унифицированную функцию в которую передаю имя метода и массив параметров. Я могу заполнить параметры и вызвать метод?
-
Читаем [1]
-
Не то. Вот я получил адрес. Это Pointer. Дальше мне нужно привести к типу, соответствующему этому методу. А у меня такого типа нету :(
-
Если метод назначен, как обработчик события, то до его параметров можно достучаться через RTII этого события.
-
ну параметры я получу. а как их присвоить и как вызвать?
-
Дык... мы же параметрами передаем какие-то переменные - вот им и надо присваивать, перед вызовом. А при вызове их и передавать.
А сам вызов - через MethodAdress, или через TMethod.Code.
-
Напишите метод без параметров, а значения передайте через локальную переменную
-
Удалено модератором
-
Удалено модератором
Примечание: http://www.delphimaster.ru/forums.shtml#rule Заперещается: п.9