Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.11;
Скачать: CL | DM;

Вниз

RunTime   Найти похожие ветки 

 
Lorry   (2003-08-25 20:54) [0]

доброго времени суток!
Создаю в консольном приложении в RunTime сокет:

var sc:TServerSocket;
.....
sc:=sc.create(nil);
......


а потом возникает проблема: не знаю как сделать событие
sc.onClientRead а вот дальше где описывать "реакцию" сокета на подобную наглость?
Заранее спасибо


 
Романов Р.В.   (2003-08-25 21:05) [1]

Во первых создаешь неправильно
sc:=TServerSocket.create(nil);
во вторых почитай
http://www.delphikingdom.com/helloworld/runtime_comp.htm


 
Lorry   (2003-08-25 21:34) [2]

2 Романов Р.В.
Спасибо! то что надо


 
Lorry   (2003-08-26 13:12) [3]

что-то я снова неправильно делаю - создаю сокет, а обработчик
sc.onClientRead:=MyProcedure()
Получаю ошибку Incopatible types "TSocketNotifyEvent" and "procedure, untyped pointer or untyped parameter"
что я неправильно делаю?


 
Lorry   (2003-08-26 13:13) [4]

P.S. Заранее спасибо


 
Skier   (2003-08-26 13:15) [5]

MyProcedure() должна быть методом класса.


 
Lorry   (2003-08-26 14:36) [6]


> Skier

а свою процедуру никак нельзя подставить?
нужно чтоб по событию OnClientRead сокет получал и обрабатывал информацию


 
Романов Р.В.   (2003-08-26 14:41) [7]

подставь метод формы или создай объект(класс) с нужным методом


 
Skier   (2003-08-26 14:44) [8]

>Романов Р.В. © (26.08.03 14:41)
У автора консольное приложение, следовательно нет формы, нет объекта Application и по сему с обработкой событий будут проблемы...


 
Романов Р.В.   (2003-08-26 14:51) [9]


> Skier © (26.08.03 14:44) [8]
> >Романов Р.В. © (26.08.03 14:41)
> У автора консольное приложение,

А...
Автор, для начала сделай неконсольное приложение, потом усложняй задачу...


 
Lorry   (2003-08-26 22:10) [10]


> Романов Р.В.

Смысла нет. С неконсольным у меня проблем не возникает! В том-то и загвоздка. что приложение консольное!

Посоветуйте еще что нибудь


 
Романов Р.В.   (2003-08-26 22:18) [11]

Мобыть не консольное приложение делать, а приложение без формы. Там сделай цикл обработки сообщений. А насчет метода... можно написать потомок Сокета с нужным методом и назначить его в качестве обработчика.


 
Lorry   (2003-08-27 00:02) [12]


> Романов Р.В.

Приложение без формы, к сожалению, не подходит.
А нельзя никак с обычным сокетом исхитриться?


 
Юрий Зотов   (2003-08-27 01:29) [13]

> Lorry

Итак, обработчик должен быть методом класса. У Вас есть единственный класс - TServerSocket. Стало быть, только в нем и может жить обработчик. В нем он и должен жить, и не надо "исхитряться".

type
TMyServerSocket = class(TServerSocket)
private
procedure ClientReadHandler(...);
public
constructor Create(...); override;
end;

constructor TMyServerSocket.Create(...);
begin
inherited;
OnClientRead := ClientReadHandler;
end;

procedure TMyServerSocket.ClientReadHandler(...);
begin
... // Здесь Ваш код
end;

======================
var
Sc: TMyServerSocket;

begin
Sc := TMyServerSocket.Create(nil);
... // И обработчик уже назначен


 
Digitman   (2003-08-27 08:28) [14]


> Lorry


Таки непонятно, чем не устраивает обычное GUI-приложение без видимой формы


 
Lorry   (2003-08-27 20:05) [15]


> Юрий Зотов

Большое спасибо за помощь!! Теперь понял наконец-то!


 
Lorry   (2003-08-28 20:18) [16]

> Юрий Зотов
Извините за еще один вопрос
получаю ошибку
Declaration of "Create" differs from previous declaration
что делать?


 
Skier   (2003-08-28 20:22) [17]

>Lorry (28.08.03 20:18)
Код-то покажи.


 
panov   (2003-08-28 20:45) [18]

Declaration of "Create" differs from previous declaration

Ну так при определении в классе и при реализации процедура и параметры по-разному описаны...


 
Lorry   (2003-08-29 02:37) [19]


> Skier

ВОт
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
ScktComp;

type
TMyServerSocket = class(TServerSocket)
private
procedure MyProc();
public
constructor Create(); override;
end;

constructor TMyServerSocket.Create();

begin
inherited;
OnClientRead := MyProc();
end;

procedure TMyServerSocket.MyProc();
begin
//Code
end;


 
Song   (2003-08-29 08:39) [20]

:)
я плакаль

он в буквальном смысле скопировал, что написал Юрий :)


 
Skier   (2003-08-29 11:00) [21]

constructor Create( AOwner: TComponent); override;


 
Digitman   (2003-08-29 11:16) [22]

мда.... а мы тут - о высоких материях, понимаешь ли))


 
Lorry   (2003-08-29 14:38) [23]


> Song

не надо плакать. Гениями не рождаются - я же учусь


 
Skier   (2003-08-29 14:40) [24]

>Lorry (29.08.03 14:38)
Не с того конца ты начал учится. Надо бы с книжек...


 
Lorry   (2003-08-29 14:40) [25]


> Digitman

о высоких не надо)
я ж хочу понять как сие работает, понимаете? Разобраться.
Как разберусь и пойму - перестану задавать глупые вопросы))


 
pasha_golub   (2003-08-29 14:54) [26]

2Lorry
Да ты не обижайся, просто действительно глупость написал, читай книжки, честно


 
Digitman   (2003-08-29 15:02) [27]


> Lorry


правильно !!!! вот ты и забрось пока на время все потуги с решением не самой простой наверно задачи и разберись для начала с констуированием классов/компонентов вообще и в принципе

ведь тот самый "глупый" вопрос

>> Declaration of "Create" differs from previous declaration
>> что делать ?

мог возникнуть (и не раз еще возникнет видимо !) и по совершенно иному поводу, никак не связанному с "сокетами" да "консолями"

это - базовые знания) ... двигаться без них дальше по пути постижения прочих "премудростей" просто нет смысла



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

Текущий архив: 2003.09.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.009 c
3-33458
zzzrrv
2003-08-21 09:51
2003.09.11
Индексирование Dbf


14-33787
panov
2003-08-22 18:24
2003.09.11
Форумы заработали.


1-33582
Luc
2003-08-28 15:45
2003.09.11
Как получить Sender а по левому клику мышкой?


3-33476
Vena
2003-08-20 15:30
2003.09.11
Alias


14-33812
KSergey
2003-08-22 11:32
2003.09.11
Ух как основной форум заколбасило ;)





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