Конференция "Компоненты" » Как можно определить имя метода-обработчика
 
  • Priest © (20.12.06 17:52) [0]
    Предположим в коде я пишу строку
    MyButton.OnClick:=MySuperMethod
    Как программно получить имя метода MySuperMethod. Возможно ли такое?
  • Джо © (20.12.06 19:48) [1]
    Только если метод published. Тогда
    MethodAddress

    .
  • Джо © (20.12.06 19:49) [2]
    К тому же, нужно будет знать, какому объекту принадлежит этот метод.
  • Priest © (21.12.06 09:28) [3]
    Да мне имени пока достаточно
  • DimaBr (21.12.06 09:37) [4]
    Расскажите историю, возможно вам имя не понадобится, скорее адрес.
  • Плохиш © (21.12.06 11:45) [5]

    > Priest ©   (20.12.06 17:52)  
    > Предположим в коде я пишу строку
    > MyButton.OnClick:=MySuperMethod
    > Как программно получить имя метода MySuperMethod. Возможно
    > ли такое?

    Никак.
  • Юрий Зотов © (22.12.06 00:42) [6]

    procedure TForm1.FormCreate(Sender: TObject);
    begin
     with TMethod(MyButton.OnClick), TObject(Data) do
       Caption := Format('%s : %s',  [ClassName, MethodName(Code)])
    end;

  • Priest © (27.12.06 12:25) [7]
    А можно ли динамически вызвать publisher метод. Например я пишу унифицированную функцию в которую передаю имя метода и массив параметров. Я могу заполнить  параметры и вызвать метод?
  • DimaBr (27.12.06 12:44) [8]
    Читаем [1]
  • Priest © (27.12.06 12:47) [9]
    Не то. Вот я получил адрес. Это Pointer. Дальше мне нужно привести к типу, соответствующему этому методу. А у меня такого типа нету :(
  • Юрий Зотов © (27.12.06 13:00) [10]
    Если метод назначен, как обработчик события, то до его параметров можно достучаться через RTII этого события.
  • Priest © (27.12.06 13:06) [11]
    ну параметры я получу. а как их присвоить и как вызвать?
  • Юрий Зотов © (27.12.06 13:25) [12]
    Дык... мы же параметрами передаем какие-то переменные - вот им и надо присваивать, перед вызовом. А при вызове их и передавать.

    А сам вызов - через MethodAdress, или через TMethod.Code.
  • DimaBr (27.12.06 13:26) [13]
    Напишите метод без параметров, а значения передайте через локальную переменную
  • имя (11.04.09 01:39) [14]
    Удалено модератором
  • ProFessor (20.04.09 05:39) [15]
    Удалено модератором
    Примечание: http://www.delphimaster.ru/forums.shtml#rule Заперещается: п.9
 
Конференция "Компоненты" » Как можно определить имя метода-обработчика
Есть новые Нет новых   [134466   +3][b:0][p:0.001]