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

Вниз

Как узнать создал ли объект ?   Найти похожие ветки 

 
besen-ok   (2004-06-17 10:39) [0]

В программе создаю объет
         SSocket := TServerSocket.Create(Nil);
Проблема в том что могу создать его повторно, есть ли способ проконтролировать создан ли он уже или еще нет ? А то не хочется делать через доп константу ...


 
Романов Р.В. ©   (2004-06-17 10:42) [1]

if not Assigned(SSocket) then

тогда удалять его нужно так
FreeAndNil(SSocket)


 
Sandman25 ©   (2004-06-17 10:42) [2]

if not Assigned(SSocket) then
 SSocket := TServerSocket.Create(Nil);

FreeAndNil(SSocket)


 
Тимохов ©   (2004-06-17 10:42) [3]

Сделайте потомка от TServerSocket
Воспользуйтесь виртуальным методом NewInstance.
Переопределите его
если создаете первый раз, то запишите созданный объект в переменную (объявленную под implementaion).
если создаете еще раз и переменная не равна nil, то ничего не создаете, а возвращаете раннее созданный объект.

Также все это надо учесть в freeinstance.


 
Sandman25 ©   (2004-06-17 10:43) [4]

[3] Тимохов ©   (17.06.04 10:42)

Это только для singleton"ов сработает


 
evvcom ©   (2004-06-17 10:44) [5]


> А то не хочется делать через доп константу ...

Константы и переменные - разные понятия.

> Проблема в том что могу создать его повторно, есть ли способ
> проконтролировать создан ли он уже или еще нет ?

А SSocket проверить трудно?


 
Тимохов ©   (2004-06-17 10:47) [6]


> Sandman25 ©   (17.06.04 10:43) [4]

согласен.
но может автору интересно будет узнать что-то новое, хоть и не ответ на вопрос. :)))


 
Sandman25 ©   (2004-06-17 10:50) [7]

[6] Тимохов ©   (17.06.04 10:47)

Тогда ему может пригодиться пул сокетов и классовая функция, возвращающая сокет с нужными свойствами (создающая новый объект в случае необходимости) :)



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

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

Наверх




Память: 0.48 MB
Время: 0.078 c
8-1082276215
Отто фон Бисмарк
2004-04-18 12:16
2004.07.04
Как сохранить нарисованне на канве PaintBox, в переменной TBitmap


8-1082305824
ARY
2004-04-18 20:30
2004.07.04
Анимация велосипеда.


3-1086613970
}|{yk
2004-06-07 17:12
2004.07.04
Видимость данных


3-1086345696
apollo
2004-06-04 14:41
2004.07.04
Скопировать массив из MSAccess в вариантный массив


14-1087361051
Tornado
2004-06-16 08:44
2004.07.04
что случилось???