![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Подскажите пожалуйста возможно ли задать индекс для функции или процедуры, т. е. делать что-то вроде этого:
procedure Pr[0](Speed: integer); begin end; Мне это необходимо для построения цикла в котором заранее не известно какую процедуру называть. Хотя это только мои догатки по методу построения подобного кода - наиболее для меня важное это выполнить некий код "A" в цикл который может с течением цикла поменяться на код B? |
|
#2
|
|||
|
|||
|
Нет, нельзя.
Но можно сделать переменную процедурного типа (ну и массив их, конечно). |
|
#3
|
||||
|
||||
|
Пиши так:
Код:
type TMProc = procedure (Speed: integer);
procedure Pr0(Speed: integer);
begin
...
end;
procedure Pr1(Speed: integer);
begin
...
end;
var Pr = array [0..1] of TMProc;
i:integer;
begin
Pr[0] := Pr0;
Pr[1] := Pr1;
// а теперь смело вызывай
for i:=0 to 1 do
begin
Pr[i](100); // вызов процедуры с параметром
end;
end;
|