Вниз
Скачать: 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.954 c
15-1138358865
Andy BitOff
2006-01-27 13:47
2006.02.19
Фоном открыть jpg и прочитать его размеры (VBA Excel)


4-1133437485
Avers_SM
2005-12-01 14:44
2006.02.19
Ув. мастера. Как найти хендлы всех контролов на форме?


10-1113893671
e-not
2005-04-19 10:54
2006.02.19
Помогите разобраться с вызовом функции на COM-сервере


1-1137568396
DmitriyR
2006-01-18 10:13
2006.02.19
выбор панели


6-1129584213
Lord_of_Darkness
2005-10-18 01:23
2006.02.19
Рдновременный прием TServerSocket ом файлов от нескольких клиенто




   Наверх