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

Обработчики событий у компонента TServerSocket   Найти похожие ветки 

← →
Ezorcist   (2005-11-09 11:51) [0]

Отчего такая пограмма вызывает ошибку при получении текста?:
procedure onr (Sender: TObject; Socket: TCustomWinSocket);
begin showmessage(socket.receivetext); end;

procedure TForm1.Button1Click(Sender: TObject);
var m:tmethod;
begin
my:=tserversocket.create(my);
my.Port:=1100;
my.Open;
m.Code:=@onr; m.Data:=nil;
my.OnClientRead:=TSocketNotifyEvent(m);
end;


← →
Digitman ©   (2005-11-09 12:49) [1]

какую ?


← →
Ezorcist   (2005-11-09 17:05) [2]

Windows socket error: запрос на отправку или получение данных no address was supplied (10057), on API "recv"


← →
Digitman ©   (2005-11-10 08:22) [3]

при выполнении какой конкретно строчки возникает ошибка ?


← →
seeker ©   (2005-11-10 09:29) [4]


procedure onr (dummy:pointer; Sender: TObject; Socket: TCustomWinSocket);
begin
showmessage(socket.receivetext);
end;


← →
Digitman ©   (2005-11-10 10:04) [5]

а к чему эти выкрутасы с TMethod ?

класс у тебя есть (TForm1), ну так объяви и реализуй в нем полноценный метод-обработчик и назначь его св-ву TServerSocket.OnClientRead !

TForm1 = class(..)
..
 procedure DoClientRead(Sender: TObject; Socket: TCustomWinSocket);
..
end;

procedure TForm1.DoClientRead;
begin
 ...
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
my:=tserversocket.create(my);
my.Port:=1100;
my.OnClientRead := DoClientRead;
my.Open;
end;

?


← →
seeker ©   (2005-11-10 11:04) [6]


> а к чему эти выкрутасы с TMethod ?

Дурная манера отвечать вопросом на вопрос.
Если кто-то что-то спрашивает, то наверно не просто так.
если Ezorcist знает про tmethod, то наверняка он знает и про то, что можно обработчику назначить метод формы, но его, видимо, это не устраивает.


← →
Digitman ©   (2005-11-10 11:28) [7]


> Дурная манера отвечать вопросом на вопрос


сначала научись задавать вопросы, потом будешь уже рассуждать про "дурные манеры"


> если Ezorcist знает про tmethod, то


.. то сначала Ezorcist должен определиться, что у него там на самом деле с параметрами творится - то ли есть dummy-параметр [4] то ли нет его [0] ..

без этого дальнейший разговор не имеет смысла


← →
seeker ©   (2005-11-10 11:43) [8]


> то ли есть dummy-параметр [4] то ли нет его [0] ..

Это не имеет никакого значения.
при

m.Code:=@onr; m.Data:=nil;

первым параметром в onr всегда будет пердаваться то что в Data, а уже затем все остальное.
в его случае получается:
Sender = Data = nil, а Socket = Sender.


← →
Digitman ©   (2005-11-10 11:51) [9]


> seeker ©   (10.11.05 11:43) [8]


> Это не имеет никакого значения


глубоко заблуждаешься.

Data - это вовсе не Sender

Значение Data будет записано в регистр ebx непосредственно перед вызовом процедуры-обработчика, и в случае если эта процедура-обработчик являет собой метод класса (а не регулярную процедуру, как в твоем случае) будет являть собой значение Self.


← →
seeker ©   (2005-11-10 14:42) [10]


>  как в твоем случае

Не в моем случае.

> а не регулярную процедуру

сдесь расматривается именно регулярная процедура...

> Значение Data будет записано в регистр ebx непосредственно
> перед вызовом процедуры-обработчика, и в случае если эта
> процедура-обработчик являет собой метод класса

а, интересно, куда будет записано значение Data если эта процедура-обработчик регулярная процедура?


← →
Digitman ©   (2005-11-10 14:58) [11]


> Не в моем случае.


в твоем случае [4] это и есть РЕГУЛЯРНАЯ ПРОЦЕДУРА.

равно как и в [0] - она же.


> сдесь расматривается именно регулярная процедура


а то я не вижу)


> а, интересно, куда будет записано значение Data если эта
> процедура-обработчик регулярная процедура?


на кудыкину гору.

читай внимательно [9]:

Значение Data будет записано в регистр ebx непосредственно перед вызовом процедуры


← →
Ezorcist   (2005-11-11 08:21) [12]

Спасибо в любом случа, помогли.



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

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



Память: 0.48 MB
Время: 0.035 c
3-1135003875
k-75
2005-12-19 17:51
2006.02.19
ADOQuery возвращает не более 1000 записей


1-1137884308
ancot
2006-01-22 01:58
2006.02.19
Очередной генератор отчетов


1-1137570215
ОлеЛу
2006-01-18 10:43
2006.02.19
компиляция без IDE


11-1119532053
вад
2005-06-23 17:07
2006.02.19
IdSMTP


3-1135510557
Varlock
2005-12-25 14:35
2006.02.19
Widestring и Table




   Наверх