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

Вниз

Как в КОЛ определить существует ли экземпляр объекта?   Найти похожие ветки 

 
nester ©   (2004-03-23 20:19) [0]

Как в КОЛ определить существует ли экземпляр объекта? Т.е. Вызывал ли я функцию NewXXX.
Например:

procedure xxx;
var
 params: PStrList
begin
 Gogogo(params);
end;

procedure Gogogo(var fparams: PStrList);
begin
 if fparams = nil then   //но тут то оно и не срабатывает
   params:= NewStrList;
...
end;

В этом участке кода в моменте коментария иф не срабатывает, несмотря на то, что я не создавал params. Указатель не равен nil у объявленой перененной, он указывает похоже на отфонарный участок памяти.
Как можно точно определить что до этого не создавал я param?
Только не надо советовать пожалуйста вставлять params:= nil; перед вызовом gogogo. это не решение.


 
Владимир Кладов   (2004-03-23 20:25) [1]

Это не решение. Это обязанность программиста, который пишет на Паскале.


 
nester ©   (2004-03-23 20:30) [2]

:))) ну я это понимаю.
Я не против делать это когда я высвобождаю память

params.free;
params:= nil;

Но в описанном мною премере, я еще ничего не делал же с переменной, я только успел ее объявить. Но она свежеобъявленая почемуто не равна nil. Хотя по логике вещей должна быть равна nil.
Или я торможу? Собственно мне и нужно узнать, делалось ли чтонибудь до этого с переменной?
Неужели при инициализации каждой процедуры мне делать params:= nil ?


 
Владимир Кладов   (2004-03-23 20:34) [3]

это логика C++. В Паскале логика другая.


 
nester ©   (2004-03-23 22:22) [4]

Т.е. мне в любом случае при инициализации придеться делать params:= nil?
И другого пути определить использовал ли я переменную или нет нету?


 
Solik ©   (2004-03-25 07:42) [5]

Если объявлять переменную глобольно можно попробовать написать так:
var
params: PStrList=nil;


 
nester ©   (2004-03-25 10:35) [6]

:))) переменная локальная



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

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

Наверх




Память: 0.48 MB
Время: 0.048 c
1-1092343189
Zak3D[@Tm]
2004-08-13 00:39
2004.08.29
Модуль Classes.


6-1088624469
AndersoNRules
2004-06-30 23:41
2004.08.29
servertype stBlocking


3-1091611604
DeepGray
2004-08-04 13:26
2004.08.29
SQL, like & %


14-1092207521
Григорьев Антон
2004-08-11 10:58
2004.08.29
Клавиатура для настоящих патриотов :))


1-1092312239
Maxximusss
2004-08-12 16:03
2004.08.29
MDI Childs