Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.19;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.674 c
1-1138016100
Gremlin13
2006-01-23 14:35
2006.02.19
Эмуляция щелчка мыши


2-1138912475
HITMAN
2006-02-02 23:34
2006.02.19
ListBox1 Ошибку не магу не обойти


15-1138275515
DesWind
2006-01-26 14:38
2006.02.19
Проблема с перепрошивкой BIOS


1-1137487731
$Инъектор
2006-01-17 11:48
2006.02.19
Компонент TDFUnRar кто-то использовал ?


15-1138362588
DillerXX
2006-01-27 14:49
2006.02.19
Ноутбук - что посоветуете счастливому обладателю? :)