Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование невизуальных компонентов без формы [D7, WinXP]


Страницы:   1 2

Дмитрий_05 ©   (2005-11-20 21:09:00) 

У меня программа без формы, я бы в ней хотел использовать невизуальный компонент TcpServer, возможно ли это? Делаю я так:


var
TcpServer1: TTcpServer;

TcpServer1 := TTcpServer.Create(...);


а вот что в скобочках написать не знаю, пишу "Application", ругается, на "Self" тоже ругается... а как еще обрабатывать события этого компонента в таком случае?


Джо   (2005-11-20 22:06:00) [21]


> [5] Дмитрий_05   (20.11.05 21:59)

Ох, тяжело вам будет, не издеваюсь - констатирую. Все же нужно книгу почитать, что ли.
В данном случае требуется присвоить свойству обработчик события. Обработчик должен быть методом объекта с соответствующим списком параметров. Т.е, нужно описать класс, одним из методов которого будет
TMyClass = class
private
 procedure OnAcceptEvent (Sender: TObject; ClientSocket: TCustomIpClient);
end;
...
procedure TMyClass.OnAcceptEvent (Sender: TObject; ClientSocket: TCustomIpClient);
begin
 ////
end;

И присваивать свойству ссылку на метод объекта этого класса.


Дмитрий_05   (2005-11-20 21:59:00) [22]

"Sender: TObject; ClientSocket: TCustomIpClient" в скобках, но опядь же, на Sender ругается, а "ClientSocket: TCustomIpClient" как с ним быть? просто такую переменную в "var" объявить?


Джо   (2005-11-20 21:55:00) [23]


> // что здесь в скобках написать?

А что в Справке рекоммендуют?


Дмитрий_05   (2005-11-20 21:46:00) [24]

спасибо за совет, обязательно почитаю... но еще один маленький вопросик...
пишу:


var
TcpServer1: TTcpServer;

procedure TcpServer1Accept(Sender: TObject;
 ClientSocket: TCustomIpClient);
begin
...
end;

procedure ...
begin
TcpServer1 := TTcpServer.Create(nil);
TcpServer1.OnAccept := TcpServer1Accept(....); // что здесь в скобках написать?
end;


что там в скобках написать? помоги пожалуйста


palva   (2005-11-20 21:39:00) [25]

А сообщения от сервера кто будет обрабатывать? Для того здесь и нужна форма, чтобы следить за возникающими в сервере событиями. Либо надо писать какой-то свой объект, имеющий бесконечный цикл обработки сообщений. Вот имя этого объекта и надо подставлять в конструктор. А будет ли все это работать, если ваш объект не порожден от TForm? А можно ли создать такой объект, если отсутствует Application - большой вопрос. А просто создать объект Server, наверно, не трудно.


Sergey Masloff   (2005-11-20 21:18:00) [26]

nil напиши.
Только не забудь потом сам замочить свой объект.
А вообще достали - этот вопрос на всех форумах раз в 10 дней точно задается.
 И если тебе приходит в голову мысль писать там Self или тем более Application то советую уделить пару месяцев прочтению хоть какой-нибудь нормальной книжки.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо