Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.064 c
2-1163690295
Svoja4ok
2006-11-16 18:18
2006.12.03
Просто в XLS... сбился с ног...


15-1163311268
Сало
2006-11-12 09:01
2006.12.03
Кличко! Кличко!


2-1163623690
framez
2006-11-15 23:48
2006.12.03
вопрос по БД: IB6.5 + BDE


1-1161455953
andry1981
2006-10-21 22:39
2006.12.03
массив форм


2-1163401115
funky
2006-11-13 09:58
2006.12.03
Считывание строк