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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2010, 23:01   #1
VVkSoft
Пользователь
 
Аватар для VVkSoft
 
Регистрация: 06.09.2009
Сообщений: 66
Радость

мне нужно вызвать метод в программе зная его имя.
вот код программы взятый из http://www.delphisources.ru/pages/fa...e_by_name.html

проект в testRun.rar

но одна проблема: я не знаю заранее какие параметры будет иметь мной вызван метод.
Вопрос: Можно программно узнать параметры метода? (процедуры или функции)

заранее спасибо

делаю следующие исправления к моему вопросу

вот код

Код:
type
   TForm1 = class(TForm)
     Button1: TButton;
     procedure Button1Click(Sender: TObject);
     // Your routines (that you'll run by name) must be here 
    procedure Hello_World(Sender: TObject);
   private
     procedure ExecuteRoutine(Instance: TObject; Name: string);
   end;

 var
   Form1: TForm1;

 type
   TExecute = procedure of object;

 procedure TForm1.ExecuteRoutine(Instance: TObject; Name: string);
 var
   Routine: TMethod;
   Execute: TExecute;
 begin
   Routine.Data := Pointer(Instance);
   // Returns the address of a published method. 
  Routine.Code := Instance.MethodAddress(Name);
   if Routine.Code = nil then Exit;
   Execute := TExecute(Routine);
   Execute;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   ExecuteRoutine(Form1, 'Hello_World');
 end;

 procedure TForm1.Hello_World(Sender: TObject);
 begin
   ShowMessage('This is a test');
 end;
вот мой переделанный метод
Код:
procedure ExecuteRoutine(Instance: TObject; Name: string);
я его вызываю так (разумеется хочу передать два параметра)
Код:
Execute(<TObject>,<string>);
компилятор ругается на эту строчку так как Execute не может иметь параметров.

если не передавать параметров то программа работает только при выполнении значения параметров являются пустыми.

Вопрос: как в моей ситуации передать параметры в нужный мой метод?

P.S. прошу прощения за корректировку вопроса в теме
Вложения
Тип файла: rar testRun.rar (218.7 Кб, 4 просмотров)

Последний раз редактировалось mihali4; 03.12.2010 в 02:09.
VVkSoft вне форума Ответить с цитированием
Старый 03.12.2010, 01:06   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

http://forum.vingrad.ru/forum/topic-...1622950/0.html
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 03.12.2010, 17:03   #3
VVkSoft
Пользователь
 
Аватар для VVkSoft
 
Регистрация: 06.09.2009
Сообщений: 66
Хорошо спасибо

спасибо за ссылку
разберусь напишу
VVkSoft вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача метода объекта. the_deer_one Общие вопросы C/C++ 8 09.09.2010 15:07
Необязательные параметры метода -как? boris-blade Общие вопросы .NET 2 24.03.2010 03:42
Как передать в поток параметры? И как из потока параметры достать? Anekdot Общие вопросы Delphi 2 19.02.2010 22:40
выход с метода TaTT DoGG Общие вопросы .NET 2 02.03.2009 17:04
написать программу..которая с использованием метода наименьших квадратов определяет параметры зависимости Марго Помощь студентам 3 14.10.2007 15:47