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

Вниз

События...   Найти похожие ветки 

 
WingGod   (2003-01-24 02:45) [0]

Расмотрим ситуацию...
Формы нет (т.е. кодим прям в проэкте).
Нужно создать компонент TClientSocket, с этим проблем нет,
Но вот как от него поймать события, типа OnConnect, OnRead,OnWrite...

если ктонить понял плиз хелп...


 
Danlicha   (2003-01-24 02:59) [1]

Написать метод объекта с параметрами, такие требует этот сокет от обработчика и присвоить этот метод событию (а это не что иное, как просто свойство типа метод). Удачи!


 
А   (2003-01-24 03:52) [2]

Удалено модератором


 
Viktor Kushnir   (2003-01-24 08:47) [3]

Тороян? :) А вообще можно TClientSocet в отдельном модуле UNIT инициализировать. И там сделать то, что посоветывал Danlicha ©


 
Digitman   (2003-01-24 09:52) [4]

нет смысла отказываться от формы при использовании TClientSocket.
потому что этот объект так или иначе все равно использует модуль Forms


 
nikulin   (2003-01-24 10:03) [5]

2 Digitman

А в модуле ScktComp вроде нет ссылки на Forms...

Где же TClientSocket использует Forms????


 
Digitman   (2003-01-24 10:40) [6]

Как это нет ? А это что :

(Д5)

implementation

uses Forms,..; ?

печально только то, что подцепляется модуль Forms
ради вызова только двух ф-ций - AllocateHWnd() и DeallocateHWnd()


 
WingGod   (2003-01-24 13:32) [7]

плиз, если не трудно напишите пример исходника...


 
Anatoly Podgoretsky   (2003-01-24 13:39) [8]

Так сообщением выше


 
WingGod   (2003-01-24 13:43) [9]

Danlicha ©, приведи исходник того что ты написал...ок?


 
vuk   (2003-01-24 13:51) [10]

to Digtman:
>Как это нет ? А это что :
В D6 этого уже нет. В принципе, в scktcomp ссылка на forms была нужна исключительно из-за AllocateHWND. В D6 все это хозяйство перенесено в classes.

Кстати, туда же переехал и TDataModule. Поэтому в проектах, где формы не нужны, можно использовать модули данных.


 
Anatoly Podgoretsky   (2003-01-24 13:56) [11]

Все может быть, но автор вопроса тщателбн скрывает версию Дельфи.


 
Digitman   (2003-01-24 14:05) [12]


> vuk


Не возражаю. У меня - Д5, поэтому конкретностей на эту тему по Д6 не имею


 
WingGod   (2003-01-24 21:01) [13]

ктонить может дописать

var
s:TClientSocket;
begin
s:=TClientSocket;
s.Onconnect=????????


 
Чих-пых   (2003-01-25 04:29) [14]

s.OnConnect := YourProcedureName;

где YourProcedureName - это имя вызываемой процедуры, то есть процедуры обработки события OnConnect.

Посмотри, как её объявить надо. Обычно...

procedure YourProcedureName(Sender : TObject);
begin
end;

Это обычный TNotifyEvent.
Но с твоим TClientSocket не знаю, посмотри в хэлп. Ну а если не понятно - создай на форме где-нибудь (в другом проекте) этот TClientSocket, задай ему обработчик ОнКоннекта, а потом скопируй эту процедуру в свой проект.


 
Чих-пых   (2003-01-25 04:30) [15]

s.OnConnect := YourProcedureName;

где YourProcedureName - это имя вызываемой процедуры, то есть процедуры обработки события OnConnect.

Посмотри, как её объявить надо. Обычно...

procedure YourProcedureName(Sender : TObject);
begin
end;

Это обычный TNotifyEvent.
Но с твоим TClientSocket не знаю, посмотри в хэлп. Ну а если не понятно - создай на форме где-нибудь (в другом проекте) этот TClientSocket, задай ему обработчик ОнКоннекта, а потом скопируй эту процедуру в свой проект.

P.S. Сейчас создавать объекты уже не модно?
s:=TClientSocket.Create; // или Create(smthg)...

P.P.S. Это Паскаль а не Си! :)
s.Onconnect:=????
^^


 
WingGod   (2003-01-26 06:36) [16]

program Project1;

uses Dialogs,ScktComp;
procedure Connect(Sender:Tobject; socket:TCustomWinSocket);
begin
showmessage("Connected");
end;

var
s:TClientSocket;
begin
s.OnConnect:=connect;
s:=TClientSocket.Create(nil);
...

ругается....дельфя...
Incompatible types: " method pointer and regular procedure"

как лечить?...




 
Sha   (2003-01-26 11:45) [17]


program Project1;
{$APPTYPE CONSOLE}

uses
SysUtils,
Dialogs,
ScktComp;

type
THelper=class
procedure OnConnect(Sender: TObject; socket: TCustomWinSocket);
end;

procedure THelper.OnConnect(Sender: TObject; socket: TCustomWinSocket);
begin;
showmessage("Connected");
end;

var
h: THelper;
s: TClientSocket;
begin;
h:=THelper.Create;
s:=TClientSocket.Create(nil);
s.OnConnect:=h.OnConnect;
//............
s.Free;
h.Free;
end.


 
Sha   (2003-01-26 11:48) [18]

еще вариант:
@s.OnConnect:=@YourProcedureName;


 
Song   (2003-01-26 11:53) [19]

Не откомпилится. Нет указания базового класса для наследника.


 
Sha   (2003-01-26 12:02) [20]

> Song © (26.01.03 11:53)
> Не откомпилится. Нет указания базового класса для наследника.

Это по поводу Sha © (26.01.03 11:45) ?
Странно, у меня компилится отлично - проверял.


 
Чих-пых   (2003-01-26 18:08) [21]


> Не откомпилится. Нет указания базового класса для наследника.

Ты про это THelper=class ?
Почитай хэлп, там чётко написано, что если у наследника не указан базовый класс, автоматически считается, что это наследник TObject.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.008 c
1-54012
baracuda
2003-03-06 19:03
2003.03.17
Form


14-54287
pipl
2003-02-27 18:07
2003.03.17
Куда подевался OnClientRead?


14-54207
SergeN
2003-03-03 12:32
2003.03.17
Написание компонента


14-54219
France
2003-03-03 09:06
2003.03.17
Сегодня историческая дата!!!


1-54114
Armageddon
2003-03-05 22:18
2003.03.17
Как задать массив в Const.





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