Главная страница
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.047 c
2-1163795260
Ded222
2006-11-17 23:27
2006.12.03
как удалить файл ?


2-1163843897
GhostOld
2006-11-18 12:58
2006.12.03
Как удалить из строки знаки переноса строки #13#10?


1-1161243455
pyJIoH
2006-10-19 11:37
2006.12.03
Выгрузка данных в XML. Создание файла TFileStream ом.


15-1163355784
razor
2006-11-12 21:23
2006.12.03
Футболка с надписью, логотипом ACM


15-1163183862
DillerXX
2006-11-10 21:37
2006.12.03
Ведёте/вели ли вы жизненный дневник?