Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Классы и 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]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо