Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.01;
Скачать: CL | DM;

Вниз

TClientSocket и переопределение OnConnect   Найти похожие ветки 

 
eblade   (2002-01-16 22:18) [0]

В общем, задача такая. Мне нужно сделать класс1 с полем, наследником от TClientSocket и подвесить
на событие OnConnect, OnDisconnect данного поля вызов процедур класса1 (класа-владельца). Как это
можно осуществить? Буду очень признателен за ответ.


 
Digitman ©   (2002-01-17 10:55) [1]

interface

Ткласс1 = class(TClientSocket)
procedure MyConnectProc(Sender: TCustomWinSocket);
procedure MyDisConnectProc(Sender: TCustomWinSocket);

public
constructor Create(AOwner: TComponent);
end;
...

implementation

constructor Ткласс1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OnConnect:= MyConnectProc;
OnDisconnect:= MyDisconnectProc;
end;


 
eblade   (2002-01-17 19:55) [2]

спасибо, но чуть-чуть не то
я спрашивал, как повесить но ОнКоннект поля вызов процедуры владельца... объясню

Ткласс1 = class(TComponent)
private
CS: TClientSocket;
public
procedure OnConnect(i: integer);
end;
...

как на онКоннект CS повесить вызов OnConnect Ткласс1 c i, к примеру = 1?


 
Digitman ©   (2002-01-18 09:20) [3]

не знаю, в какой момент у тебя создается экз-р TClientSocket, поэтому поместил его создание в конструктор твоего класса

Ткласс1 = class(TComponent)
private
CS: TClientSocket;
...
procedure ConnectEventHandler(Sender: TObject; Socket: TCustomWinSocket);
procedure OnConnect(i: integer);
...
public
constructor Create(AOwner: TComponent);
destructor Destroy; override;
end;
...

implementation

constructor Ткласс1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
CS:= TClientSocket.Create(nil);
CS.OnConnect:= ConnectEventHandler;
end;

destructor Ткласс1.Destroy;
begin
CS.Free;
inherited;
end;

procedure Ткласс1.ConnectEventHandler(Sender: TObject; Socket: TCustomWinSocket);
begin
OnConnect(1);
end;



 
eblade   (2002-01-18 13:54) [4]

сенкс, это то что надо

еще один вопрос
как поступить в случае если у меня CS - будет список наследников от ТКлиентСокет с добавленным уникальным идом, который мне нужно будет передать в Ткласс1.ConnectEventHandler?


 
Digitman ©   (2002-01-18 14:36) [5]


Ткласс1 = class(TComponent)
private
CS: TList;
...
procedure ConnectEventHandler(Sender: TObject; Socket: TCustomWinSocket);
procedure OnConnect(i: integer);
...
public
constructor Create(AOwner: TComponent);
destructor Destroy; override;
end;
...

implementation

constructor Ткласс1.Create(AOwner: TComponent);
var
i: Integer;
newsocket: TClientSocket;
begin
inherited Create(AOwner);
CS:= TList.Create;
for i:= 0 to ..... do begin
newsocket:= TClientSocket.Create(nil);
newsocket.OnConnect:= ConnectEventHandler;
CS.Add(newsocket);
end;
end;

destructor Ткласс1.Destroy;
var
i: Integer;
begin
for i:= 0 to CS.Count - 1 do
TObject(CS.Items[i]).Free;
CS.Free;
inherited;
end;

procedure Ткласс1.ConnectEventHandler(Sender: TObject; Socket: TCustomWinSocket);
begin
OnConnect(CS.IndexOf(Socket));
end;


 
eblade   (2002-01-18 22:31) [6]

огромное спасибо еще раз



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

Текущий архив: 2002.04.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
1-98
Сатир
2002-03-21 13:57
2002.04.01
Динамическое подключение пакетов


3-42
knyaz17
2002-03-07 10:45
2002.04.01
Вопрос по ADO.


3-56
Turalyon
2002-03-05 13:35
2002.04.01
Триггер в IB6


1-247
AlexanderS
2002-03-20 23:31
2002.04.01
Как получить значение переменной окружения TEMP?


1-219
Fellomena
2002-03-20 10:49
2002.04.01
Threads... (inside)