Вниз
Скачать: CL | DM;

Проверить существование объекта.   Найти похожие ветки 

 
~~~   (2006-11-18 19:12) [0]

Как проверить существование например TStringList?
var
 List: TStringList;
begin
//  if not Assigned(List) then Что тут надо писать?
   List := TStringList.Create;
 List.Add("test");


 
KilkennyCat ©   (2006-11-18 19:15) [1]

begin


 
Anatoly Podgoretsky ©   (2006-11-18 19:17) [2]

> ~~~  (18.11.2006 19:12:00)  [0]

Тут ничего писать не надо.


 
~~~   (2006-11-18 19:20) [3]

Я хочу проверить создан ли этот объект или нет. Вот что я хочу. Я понимаю, что если ничего там не писать, то такой код будет исправно работать. Но это только пример, мне нужно проверить создан объект или нет.


 
Anatoly Podgoretsky ©   (2006-11-18 19:21) [4]

> ~~~  (18.11.2006 19:20:03)  [3]

Зачем этот огрызок текста, что у тебя выше?


 
~~~   (2006-11-18 19:31) [5]

Ну ситуация приблизительно такая: есть глобальная переменная типа TStringList, которую я изначально не хочу инициализировать (создавать), а хочу это сделать потом, т.к. сначала не ясно буду ли я использовать или нет.

У меня есть процедура которая добавляет данные в эту самую глобальную переменную.

procedure AddData(const Value: string);
begin
 тут я хочу проверить создан обект List. т.е. если в первый раз вызываем процедуру - создаем List, иначе - просто добавляем данные.
 List.Add(Value);
end;


 
Anatoly Podgoretsky ©   (2006-11-18 19:36) [6]

> ~~~  (18.11.2006 19:31:05)  [5]

Из справки

If you don"t explicitly initialize a global variable, the compiler initializes it to 0.


 
MsGuns ©   (2006-11-18 19:41) [7]

>Ну ситуация приблизительно такая: есть глобальная переменная типа TStringList, которую я изначально не хочу инициализировать (создавать), а хочу это сделать потом, т.к. сначала не ясно буду ли я использовать или нет.

Типа "пить не буду, но рюмку поставьте" ?


 
Alexander Panov ©   (2006-11-18 20:46) [8]


> ~~~   (18.11.06 19:12) 


Для этого тебе необходимо при уничтожении объекта обнулять ссылку на него:

List.Free;
List := nil;


либо

FreeAndNil(List);

При создании же проверять:

if not Assigned(List) then List := TStringList.Create;


 
RASkov   (2006-11-18 21:00) [9]

Ну ведь сам же вначале написал

procedure AddData(const Value: string);
begin
if Assigned(List) then List.Add(Value) else raise...
end;


Создавай так:
if not Assigned(List) then List := TStringList.Create;

Уничтожай так
FreeAndNil(List);


 
RASkov   (2006-11-18 21:01) [10]

[8]:)
Блин, не обновил окно перед отправкой, ну да ладно...



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.032 c
2-1163579264
Elen
2006-11-15 11:27
2006.12.03
Запрет перемещений других окон в выбранной области экрана


1-1161709206
SkySpeed
2006-10-24 21:00
2006.12.03
Как организовать видео-захват экрана монитора с записью в файл?


2-1163756193
Дмитрий Белькевич
2006-11-17 12:36
2006.12.03
io error 32


2-1163146600
maxistent
2006-11-10 11:16
2006.12.03
Ресурсы


2-1163490915
TrainerOfDolphins
2006-11-14 10:55
2006.12.03
Клик с нажатой Ctrl на гриде




   Наверх