![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CallBack [D6, XP]
SkyRanger © (2005-11-24 04:29:00)Наткнулся тут на модуль, реализующий енто дело на delphi
Что то не могу найти ничего путного по этому вопросу.
Не подскажете зачем вообще сущесьвует CallBack??
P.S. и что то поиск по сайту не работает :(
Джо (2005-11-24 04:44:00) [1]Callback-функции - это родовое понятие. Русский перевод функции обратного вызова. Чтобы поменьше разводить теории, приведу разъясняющий пример.
type
// определим процедурный тип
TMyCallBackProc = procedure (CurrentValue: Integer);
// в качестве одного из параметров процедура принимает функцию обратного вызова
// и вызывает ее для каждой итерации цикла, заданного рамками Min & Max
procedure DoCycle (Min,Max: Integer; Callback: TMyCallBackProc);
var
I: Integer;
begin
for I := Min to Max do
Callback (I)
end;
// определяем нашу callback-процедуру
// список параметров должен соответствовать типу TMyCallBackProc
// название может быть любым
procedure MyCallBackProc (CurrentValue: Integer);
begin
// выводит на экран передаваемое ей значение
ShowMessage (IntToStr(CurrentValue));
end;
// тестируем
procedure TForm1.Button1Click(Sender: TObject);
begin
// вызываем процедуру, в цикле перебирающую значения от 0 до 3
// и передаем ей адрес нашей callback-процедуры
DoCycle(0,3,MyCallBackProc);
end;
Если что-то непонятно, пиши.