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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2010, 15:24   #1
Federal
Пользователь
 
Регистрация: 21.05.2010
Сообщений: 77
По умолчанию Процедуры

У меня несколько процедур
например
procedure Р1
procedure Р2
procedure Р3
procedure Р4
procedure Р5
procedure Р6
................
procedure Р300
в поле ЕДИТ1 вводим номер (допустим 2)процедуры нажимаем кнопку

Button1
вызвать процедуру ЕДИТ1 то есть 2 то есть Р2;

Я бы хотел избежать типа
if (Edit1.Text='1') then P1;
if (Edit1.Text='2') then P2;
.........
if (Edit1.Text='300') then P300;

А как нибудь попроще
типа
i:=StrToInt(Edit1.text);
P[i];

Последний раз редактировалось Federal; 01.08.2010 в 15:32.
Federal вне форума Ответить с цитированием
Старый 01.08.2010, 15:59   #2
Necrophobic
Новичок
Джуниор
 
Регистрация: 01.08.2010
Сообщений: 2
По умолчанию

можешь сделать через делегаты, если у всех процедур одинаковые параметры
пишешь
Код:
type 
  TDel = array of procedure of object;
потом ясное дело объект его
Код:
var P : TDel;
затем самая некрасивая часть решения(((
Код:
setlength(P,300);
P[0] := p1;
P[1] := p2;
P[2] := p3;
---------------
P[299] := p300;
зато теперь, можно вызывать функции по индексу!!
Код:
P[strtoint(edit1.text)];
Necrophobic вне форума Ответить с цитированием
Старый 01.08.2010, 16:06   #3
Federal
Пользователь
 
Регистрация: 21.05.2010
Сообщений: 77
По умолчанию

Лучше и не придумать...Спасибо!!!
Federal вне форума Ответить с цитированием
Старый 01.08.2010, 16:27   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

А вот еще одна "некрасивая реализация" без всяких "делегатов"...
Код:
i:=StrToInt(Edit1.text);
case i of
  1:P1;
  2:p2;

  300:P300
end; //case
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедуры Ольга123456 Паскаль, Turbo Pascal, PascalABC.NET 4 08.06.2010 19:56
процедуры towelie Паскаль, Turbo Pascal, PascalABC.NET 3 24.05.2010 17:24
Управляющие структуры, процедуры Function и процедуры Sub Natalo4ka Помощь студентам 0 17.05.2010 22:00
Запуск процедуры из процедуры с дополнением 1sal1 Общие вопросы Delphi 3 06.10.2008 21:54