![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TServerSocket в консольном приложении [D7]
Junior © (2004-08-13 22:31:00)Привет всем! Помогите начинающему Дельфину. Я подозреваю, что надо было вопрос задать в другом форуме ибо проблема , наверное не в TServerSocket , а в моем недостаточном понимании VCL. И все же : как в консольном приложении динамически связать событие с процедурой, в которой оно будет обрабатываться. Спасибо.
program ssk;
uses
ScktComp;
const
ivs_port = 12044;
type
skr = procedure(Sender: TObject; Socket: TCustomWinSocket);
var
sskt : TServerSocket;
__ss : skr;
{$R *.res}
procedure ssClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
end;
procedure _init;
begin
__ss := ssClientRead;
sskt := TServerSocket.Create(nil);
sskt.Port := ivs_port;
sskt.ServerType := stThreadBlocking;
sskt.OnClientRead := __ss; // Çäåñü îøèáêà [Error] ssk.dpr(23): Incompatible types: 'method pointer and regular procedure'
sskt.Open();
end;
procedure _fin;
begin
sskt.Close();
sskt.Free();
end;
begin
_init();
_fin();
end.
Digitman (2004-08-16 10:47:00) [1]
> Григорьев Антон © (16.08.04 10:28) [3]
у него - stThreadBlocking
Григорьев Антон (2004-08-16 10:28:00) [2]Чтобы это всё работало, нужно ещё добавить петлю сообщений (цикл с GetMessage/DispatchMessage), которого в консольных приложениях по умолчанию нет. События TServerSocket'а передаются через оконные сообщения, и если программа их не обрабатывает, то и событий не будет.
AndersoNRules (2004-08-13 23:00:00) [3]togda oshibka budet v 19-i stroke
AndersoNRules (2004-08-13 22:59:00) [4]a ti dobavi svoemu skr "of object";
as: procedure ... of object;