Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
Пубертанец   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.015 c
14-71845
DiamondShark
2003-09-01 14:35
2003.09.22
Поздравляю всех.


1-71698
Стрелок
2003-09-11 08:41
2003.09.22
Знаки на рабочем столе!


3-71548
Sable
2003-08-25 19:30
2003.09.22
Проблема с кодировкой при экспорте из cxGrid


1-71715
1
2003-09-10 17:43
2003.09.22
Конвертация строк


14-71894
Igorek
2003-08-06 09:30
2003.09.22
---|Ветка была без названия|---





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский