Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Вниз

Обработчики событий у компонента 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.041 c
2-1138116838
Rust007
2006-01-24 18:33
2006.02.19
Альтернатива WebBrowser-a


15-1138480841
MetalFan
2006-01-28 23:40
2006.02.19
Новости VCL


2-1138550619
13
2006-01-29 19:03
2006.02.19
ActionMainMenuBar


15-1138443966
oldman
2006-01-28 13:26
2006.02.19
"Влип, очкарик" :))) (опрос)


2-1138786269
Kolan
2006-02-01 12:31
2006.02.19
Приведение типов массивов...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский