![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Классы и Callback! [D5, D6]
MaximatorVeter © (2002-06-04 22:46:00)Мастера и подмастерье! Помогите освоить callback применительно к ООП.
Требуется создать 2 класса (клиент и сервер) и организовать для них callback.
Спасибо всем ответившим.
MaximatorVeter (2002-06-12 20:50:00) [1]Всем спасибо!
Digitman (2002-06-06 11:35:00) [2]>MaximatorVeter
Напоминает-то напоминает, но callback-механизм изначально призван реализавать обратные вызовы именно в ситуации, когда "сервер" и "клиент" работают в разных адресных пространствах, в частном случае - на разных машинах.
Твои же ИД с большой натяжкой можно назвать callback-механизмом -"сервер" и "клиент" работают в одном и том же АП единого для обоих процесса (кодовые потоки данного процесса здесь не играют никакой роли и абсолютно неважны здесь). Просто некий класс публикует и реализует некий метод, который в любой момент времени может быть вызван (обычным образом) из выполняемого метода другого класса. Ты же не называешь колбэком реализацию и собственно исполнение метода Form2.Show, если этот метод вызвается в событии Form1.Button1Click() ? Здесь как раз твоя ситуация : код объекта Form1 вызывает код объекта Form2 !!
Внук (2002-06-06 10:54:00) [3]Так вот Вы о чем :) Ну, что-то вроде
type
TMyCallback=procedure of object;
TMyClass1=class
...
public
procedure Method1(F:TMyCallback);
...
end;
TMyClass2=class
...
public
procedure Method2;
...
end;
procedure TMyClass1.Method1(F:TMyCallback);
begin
...
F;
...
end;
...
var C1:TMyClass1;
C2:TMyClass2;
...
С1:=TMyClass1.Create;
C2:=TMyClass2.Create;
C1.Method1(C2.Method2);
...
MaximatorVeter (2002-06-06 10:36:00) [4]Клиент - это один класс, а сервер - второй (на одной машине в одной программе в одном потоке). Как их связать через callback?
Кстати динамичемкое назначение событие очень напоминает механизм callback?
Digitman (2002-06-06 08:23:00) [5]>MaximatorVeter
А у вас ? "Где у вас клиент, а где сервер" ?? Они на одной машине или на разных ?
MaximatorVeter (2002-06-05 21:33:00) [6]Ведь должен быть клиент и сервер. Клиент предоставляет серверу указатель на callback-функцию. А тот вызывает ее когда считает нужным. Где у вас клиент, а где сервер?
Anatoly Podgoretsky (2002-06-05 21:15:00) [7]Без клвссоы Proc(CallbackProc);
MaximatorVeter (2002-06-05 19:57:00) [8]На самом деле я плохо представляю сам механизм обратного вызова. Теоретически я понимаю. А как написать простейший пример (можно и без классов)?
Игорь Шевченко (2002-06-05 09:37:00) [9]Пояснить можно, что имеется в виду ?