Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.029 c
1-71678
LinOS
2003-09-11 12:14
2003.09.22
Как при нажатии на кнопку добавить в MainMenu пункты из PopupMenu


14-71946
Dmitriy O.
2003-09-02 16:28
2003.09.22
Как можно получить палитру 256 цветов Виндовс


1-71714
alpine
2003-09-09 20:19
2003.09.22
Как сохранить HTML загруженную с помощью TWebBrowser ?


3-71561
AlexWeb
2003-08-29 10:57
2003.09.22
Можно ли подключить базу IB при помощи ADO?


7-71977
Dimaxx
2003-07-09 23:35
2003.09.22
Как получить полный путь к папке профиля текущего пользователя?




   Наверх