Вниз
Скачать: CL | DM;

Классы и Callback!   Найти похожие ветки 

← →
MaximatorVeter ©   (2002-06-04 22:46) [0]

Мастера и подмастерье! Помогите освоить callback применительно к ООП.
Требуется создать 2 класса (клиент и сервер) и организовать для них callback.
Спасибо всем ответившим.


← →
Игорь Шевченко ©   (2002-06-05 09:37) [1]

Пояснить можно, что имеется в виду ?


← →
MaximatorVeter ©   (2002-06-05 19:57) [2]

На самом деле я плохо представляю сам механизм обратного вызова. Теоретически я понимаю. А как написать простейший пример (можно и без классов)?


← →
Anatoly Podgoretsky ©   (2002-06-05 21:15) [3]

Без клвссоы Proc(CallbackProc);


← →
MaximatorVeter ©   (2002-06-05 21:33) [4]

Ведь должен быть клиент и сервер. Клиент предоставляет серверу указатель на callback-функцию. А тот вызывает ее когда считает нужным. Где у вас клиент, а где сервер?


← →
Digitman ©   (2002-06-06 08:23) [5]

>MaximatorVeter

А у вас ? "Где у вас клиент, а где сервер" ?? Они на одной машине или на разных ?


← →
MaximatorVeter ©   (2002-06-06 10:36) [6]

Клиент - это один класс, а сервер - второй (на одной машине в одной программе в одном потоке). Как их связать через callback?
Кстати динамичемкое назначение событие очень напоминает механизм callback?


← →
Внук ©   (2002-06-06 10:54) [7]

Так вот Вы о чем :) Ну, что-то вроде

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);
...


← →
Digitman ©   (2002-06-06 11:35) [8]

>MaximatorVeter

Напоминает-то напоминает, но callback-механизм изначально призван реализавать обратные вызовы именно в ситуации, когда "сервер" и "клиент" работают в разных адресных пространствах, в частном случае - на разных машинах.
Твои же ИД с большой натяжкой можно назвать callback-механизмом -"сервер" и "клиент" работают в одном и том же АП единого для обоих процесса (кодовые потоки данного процесса здесь не играют никакой роли и абсолютно неважны здесь). Просто некий класс публикует и реализует некий метод, который в любой момент времени может быть вызван (обычным образом) из выполняемого метода другого класса. Ты же не называешь колбэком реализацию и собственно исполнение метода Form2.Show, если этот метод вызвается в событии Form1.Button1Click() ? Здесь как раз твоя ситуация : код объекта Form1 вызывает код объекта Form2 !!


← →
MaximatorVeter ©   (2002-06-12 20:50) [9]

Всем спасибо!



Страницы: 1 вся ветка

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



Память: 0.47 MB
Время: 0.011 c
3-77270
juster
2002-05-30 13:04
2002.06.24
TDataBase и TSession


3-77282
Chainik
2002-05-30 16:26
2002.06.24
Выборка по первым 2-м цифрам из поля таблицы


1-77429
perov
2002-06-11 10:05
2002.06.24
Быстрое удаление дупликатов


3-77259
juster
2002-05-30 09:13
2002.06.24
TQuery в runtime


3-77322
AngeL B.
2002-05-31 20:28
2002.06.24
Как осуществить аналог left outer join в TADOQuery?




   Наверх