![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Функции
AntonSh © (2004-10-01 17:26:00)У меня есть функция и процедура. Подскажите как мне в функцию передать в качестве параметра процедуру. Спасибо.
Defunct (2004-10-02 02:36:00) [1]GuAV © (02.10.04 02:31) [6]
ага
GuAV (2004-10-02 02:31:00) [2]Zeon (02.10.04 01:50) [5]
> Тогда перед её вызовом в стек будет заноситься только адрес
> этой процедуры, а не вся процедура целиком. А это очень
> значительное экономие времени работы плюс дополнительная
> защита от переполнения стека.
Чушь.
Zeon (2004-10-02 01:50:00) [3]Только когда будеш вызывать свою функцию, поставь перед именем процедуры(параметра) знак @ Тогда перед её вызовом в стек будет заноситься только адрес этой процедуры, а не вся процедура целиком. А это очень значительное экономие времени работы плюс дополнительная защита от переполнения стека.
fcn(@prc);
AntonSh (2004-10-01 17:41:00) [4]Спасибо всё работает.
Sandman25 (2004-10-01 17:37:00) [5][2] МЯУ (01.10.04 17:36)
Согласен. Невнимательно прочитал.
МЯУ (2004-10-01 17:36:00) [6]Sandman25 © (01.10.04 17:30) [1]
набарот, процедуру в функцию, а не функцию в процедуру :)
type
tprocedure = procedure(...);
var
function fcn(prc: tprocedure): ...;
Sandman25 (2004-10-01 17:30:00) [7]type
TFunctionParam = function(StringParam: String): Integer;
...
function Func1(AString: String): Integer;
...
procedure MyProc(FunctionParam: TFunctionParam);
...
MyProc(Func1);