Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2009, 08:07   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию Получить адрес метода

Всем привет!
Ситуация такая. могут вводиться несколько команд (текстовых)
На каждую из них есть свой обработчик (метод). Параметры у них одни и те же и объявлен тип функции

делаю так
Код:
type
   tSomeFunc = function(const aStr: string; const aInt: integer): boolean;
   ...
   public
   function firstFunc(const aStr: string; const aInt: integer): boolean;
   function secondFunc(const aStr: string; const aInt: integer): boolean;
   ...


procedure executeCmd(const cmd, aStr: string; const aInt: integer): boolean;
var
func: tSomeFunc;
begin
   @func := MethodAddress(cmd); // Адрес 0 равен! :o
   if @func = nil then
      result := false;
   else
      result := func(string, aInt);  
end;
Помогите чем можете
Altera вне форума Ответить с цитированием
Старый 02.10.2009, 08:29   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Код:
type
   tSomeFunc = function(const aStr: string; const aInt: integer): boolean of object;

   {$METHODINFO ON}
   TMyClass = class
   public
      function firstFunc(const aStr: string; const aInt: integer): boolean;
      function secondFunc(const aStr: string; const aInt: integer): boolean;

      function executeCmd(const cmd, aStr: string; const aInt: integer):boolean;
   end;
   {$METHODINFO OFF}

function TMyClass.executeCmd(const cmd, aStr: string; const aInt: integer): boolean;
var func: tSomeFunc;
begin
   @func := MethodAddress(cmd);
   if @func = nil then
      result := false
   else
      result := func(aStr, aInt);
end;
alexBlack вне форума Ответить с цитированием
Старый 02.10.2009, 13:43   #3
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Большое спасибо!
Altera вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Адрес метода класса? VintProg Общие вопросы Delphi 6 27.09.2009 13:10
Не могу получить адрес найденой ячейки в Exel R_Z Microsoft Office Excel 5 13.09.2009 22:06
получить собственный адрес ячейки формулой tolikman Microsoft Office Excel 1 15.06.2009 05:36
Как получить адрес посещенного сайта? ROFF Win Api 3 25.05.2009 10:12
Как получить адрес свойства объекта? Lim Общие вопросы Delphi 3 30.11.2007 19:46