Главная страница
    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.047 c
15-1138290638
Andy BitOff
2006-01-26 18:50
2006.02.19
Установка GDIplus под D2005 - проблемы.


3-1135253805
UnDISCOvery
2005-12-22 15:16
2006.02.19
MS Access - поле типа "счетчик"


2-1138520899
acer
2006-01-29 10:48
2006.02.19
данные в treenode


4-1133856137
Lex_!
2005-12-06 11:02
2006.02.19
Выполнение консольного приложения и вывод результатов в МЕМО поле


2-1138877410
Паша_
2006-02-02 13:50
2006.02.19
Как узнать какие threads запущены?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский