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

Вниз

как правильно задействовать в нити класс TClientSocket   Найти похожие ветки 

 
LeNa19   (2003-09-07 13:52) [0]

привет всем
наролд подскажите как правильно задействовать
в нити класс TClientSocket
а то у меня во время запуска приложения (нить еще не запущена)
вылетает мессага класс TClientSocket не найден
я делаю ето так а как правильно ?????

unit scan;

interface

uses

ScktComp,
Classes;


type
Tscan = class(TThread)
myclient:TClientSocket;
private
{ Private declarations }
protected
procedure Execute; override;
end;

implementation uses unit1;

{ Tscan }

procedure Tscan.Execute;
begin
{
myclieht:=TClientSocket.
myclient.Port:=139;
myclient.Host:="127.0.0.1";
myclient.Active:=true;
}
end;

end.


 
mrcat ©   (2003-09-08 09:29) [1]

procedure Tscan.Execute;
begin
{
myclieht:=TClientSocket.Create(что-то_там);
myclient.Port:=139;
myclient.Host:="127.0.0.1";
myclient.Active:=true;
}
end;

Может, для начала, TClientSocket.Create организовать в другом месте, например, при создании нити (как-никак TThread.Execute для этого самое паршивое место :/) ?


 
LeNa19   (2003-09-08 11:25) [2]

можно былобы попробовать и в EXECUTE но метод CREATE здесь ещо не виден :-(


 
Digitman ©   (2003-09-08 11:43) [3]


> можно былобы попробовать и в EXECUTE но метод CREATE здесь
> ещо не виден


чего "не виден" ? кому "не виден" ? где "здесь" ?


 
mrcat ©   (2003-09-08 11:45) [4]

Digitman © (08.09.03 11:43)
чего "не виден" ? кому "не виден" ? где "здесь" ?

в книжке, наверное :)


 
Verg ©   (2003-09-08 11:46) [5]

В том куске кода вообще ничего не происходит


> mrcat © (08.09.03 09:29) [1]


В этом тоже


 
Verg ©   (2003-09-08 11:55) [6]

И вообще. Не надо понимать слова
{ Place thread code here }

Так буквально....


 
LeNa19   (2003-09-08 12:29) [7]

TO Digitmen
чего "не виден" ? кому "не виден" ? где "здесь" ?
в коде приведенном mrcat
в книге он дествительно не виден изза отсутствия таковой


 
Digitman ©   (2003-09-08 12:37) [8]


> LeNa19


))
любопытно, а как метод Create д.б. еще "виден" в этом коде ?
я вот вижу, к примеру)... оч даже хорошо вижу) ... что же тебе не видно там ?


 
mrcat ©   (2003-09-08 13:12) [9]

Verg © (08.09.03 11:46)
LeNa19 (08.09.03 12:29)

Это и не пример, а указание на отсутствие конструктора в приведённом коде.


 
LeNa19   (2003-09-08 23:57) [10]

TO mrcat
а что, если в коде нет конструктора сокета , то при запуске приложения должна быть ошибка . Я же не активизирую нить в которой он создается(в основном модуле нет Tscan.create )
ето же равнносильно что объявить переменную и не воспользоватся ей

TO Digitman
а вот компилятор его не видит.


 
Digitman ©   (2003-09-09 08:16) [11]


> а вот компилятор его не видит


приведи код именно в том виде, в котором кто-то кого-то "не видит"


 
mrcat ©   (2003-09-09 08:53) [12]

LeNa19 (08.09.03 23:57)

Давайте на секунду забудем о нитях, потоках, процессах ...
Как Вы будете реализовывать создание экземпляра TClientSocket run-time ?


 
FoxBox   (2003-09-09 11:45) [13]

Если TClientSocket нужен постоянно и много (обращение к экземпляру идет из нескольких методов одного из объектов), то объявить его как свойство данного объекта и в конструкторе объекта написать, напр

constructor TMyObject.Create;
begin
inherited;
MySocket := TClientSocket.Create;
...
end;

потом в деструкторе убить MySocket

а в методах уже дергаешь MySocket.Port := Хрен_Знает_Что
или там чего тебе надо...


 
LeNa19   (2003-09-09 17:36) [14]

огромное спасибо всем
я нашла свою ошибку



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

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

Наверх




Память: 0.49 MB
Время: 0.024 c
3-41052
-= Demon =-
2003-10-21 10:40
2003.11.13
Формат таблиц


14-41976
Digitman
2003-10-15 15:07
2003.11.13
Про братьев наших меньших...)


14-41882
Ysaev Grigoriy
2003-10-21 16:47
2003.11.13
Програмирование как искусство.


8-41734
Stexen
2003-07-15 23:46
2003.11.13
Загрузка графического файла


3-40935
zsr
2003-10-17 13:27
2003.11.13
BatchMove для ADOQuery