Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > вызвать фукнцию зная ее имя


Автор: jsa 26.4.2008, 17:26
Hi All!

требуется сабж, возмоно ли такое в delphi, не в смысле обычного кодинга, типа:
Код

...
MyFunction(MyVar);
...

, а в том плане что имя функции храниться в переменной, и вызов это переменной вызывает функцию

Автор: Poseidon 26.4.2008, 20:42
Цитата(jsa @  26.4.2008,  17:26 Найти цитируемый пост)
а в том плане что имя функции храниться в переменной
В текстовой что-ли?  smile 

Автор: aktuba 26.4.2008, 20:50
Цитата(jsa @  26.4.2008,  18:26 Найти цитируемый пост)
в том плане что имя функции храниться в переменной, и вызов это переменной вызывает функцию 

RTTI?

Автор: jsa 26.4.2008, 22:03
aktuba, а поподробнее, если можно, то желательно ссылочку

Добавлено через 48 секунд
Poseidon, да, типа того

Автор: aktuba 27.4.2008, 01:41
Код

type
  PYourMethod = ^TYourMethod;
  TYourMethod = procedure(S: string) of Object;

procedure TMainForm.Button1Click(Sender: TObject);
begin
  ExecMethodByName('SomeMethod');
end;

procedure TMainForm.ExecMethodByName(AName: string);
var
  PAddr: PYourMethod;
  M: TMethod;
begin
  PAddr := MethodAddress(AName);
  if PAddr <> nil then
  begin
    M.Code := PAddr;
    M.Data := Self;
   TYourMethod(M)('hello');
  end;
end;

procedure TMainForm.SomeMethod(S: string);
begin
 ShowMessage(S);
end; 



Из http://drkb.ru.

Автор: jsa 27.4.2008, 14:51
aktuba, это как раз то что нужно, спасибо большое, с меня плюс

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)