Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
~~~   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.041 c
2-1163667932
DoktorX
2006-11-16 12:05
2006.12.03
Можно ли распознать картинку при помощи шаблона?


1-1161172048
zirus
2006-10-18 15:47
2006.12.03
Масштабирование изображений(квадрат -> трапеция)


9-1139164310
HPR
2006-02-05 21:31
2006.12.03
И опять о плавности...


15-1163534530
Виталий Панасенко
2006-11-14 23:02
2006.12.03
FireBird. Руководство разработчика баз данных


2-1163524922
Beavercrazy
2006-11-14 20:22
2006.12.03
Как сохранить файл в формате html





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский