Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.22;
Скачать: CL | DM;

Вниз

Можно ли в параметр функции передать другую функцию? И как?   Найти похожие ветки 

 
Пубертанец   (2003-09-11 11:58) [0]

Сабж


 
Basilio ©   (2003-09-11 12:02) [1]


type
myfunc=function (x:integer):integer;

procedure printer(value:integer;printfunc:myfunc);
begin
printfunc(value);
end;
function prn1(x:integer):integer);
begin
writeln("prn1:",x:4);
end;function prn2(x:integer):integer);
begin
writeln("prn2:",x:10);
end;
begin
printer(10,prn1);
printer(10,prn2);
end.


 
Nikolay M. ©   (2003-09-11 12:05) [2]

Например, так:

type
TMyProc = procedure (S : string) ofobject;

type
TfMain = class(TForm)
procedure ProcToAcceptFunc (Func : TMyProc);
procedure Func1 (S : string);
procedure Func2 (S : string);
....
end;

procedure TfMain.ButtonClick;
var
temp : TMyProc;
begin
temp := Func1;
ProcToAcceptFunc (temp);
temp := Func2;
ProcToAcceptFunc (temp);
end;

Уффф...
Вроде почти так. Пишу на коленке, не обессудь если где запнулся. Может минут через эннадцать что получше в голову придет :)


 
PVOzerski ©   (2003-09-11 12:05) [3]

Можно, правда не так, как это описано в учебниках по "стандартному" Паскалю. Для этого Borland ввел процедурные переменные, но конструкции типа function aaa(function bbb:char):integer; их Паскали не поддерживают. Придется описывать процедурный тип и делать параметр этого типа. Не знаю, может, procedure без параметров и пройдет как тип параметра (проверять лень), но это был бы очень частный случай.


 
jack128 ©   (2003-09-11 12:15) [4]


> но конструкции типа function aaa(function bbb:char):integer;
> их Паскали не поддерживают

Делфи вроди их тоже не поддерживает



Страницы: 1 вся ветка

Текущий архив: 2003.09.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.033 c
1-71738
Erik
2003-09-09 14:34
2003.09.22
Увеличение размера масива неизвестного типа?


14-71952
pasha_676
2003-09-02 10:43
2003.09.22
Надо начинать поиски работы


1-71748
begemot
2003-09-07 22:39
2003.09.22
Combobox


3-71537
IGORYOK
2003-08-29 12:26
2003.09.22
Как переносить базы на другой компьютор на котором нет BDE


3-71546
Hooch
2003-08-29 13:59
2003.09.22
TAdoDataSet