![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проверить существование объекта.
~~~ © (2006-11-18 19:12:00)Как проверить существование например TStringList?
var
List: TStringList;
begin
// if not Assigned(List) thenЧто тут надо писать?
List := TStringList.Create;
List.Add('test');
RASkov (2006-11-18 21:01:00) [1][8]:)
Блин, не обновил окно перед отправкой, ну да ладно...
RASkov (2006-11-18 21:00:00) [2]Ну ведь сам же вначале написал
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);
Alexander Panov (2006-11-18 20:46:00) [3]
> ~~~ (18.11.06 19:12)
Для этого тебе необходимо при уничтожении объекта обнулять ссылку на него:
List.Free;
List := nil;
либо
FreeAndNil(List);
При создании же проверять:
if not Assigned(List) then List := TStringList.Create;
MsGuns (2006-11-18 19:41:00) [4]>Ну ситуация приблизительно такая: есть глобальная переменная типа TStringList, которую я изначально не хочу инициализировать (создавать), а хочу это сделать потом, т.к. сначала не ясно буду ли я использовать или нет.
Типа "пить не буду, но рюмку поставьте" ?
Anatoly Podgoretsky (2006-11-18 19:36:00) [5]> ~~~ (18.11.2006 19:31:05) [5]
Из справки
If you don't explicitly initialize a global variable, the compiler initializes it to 0.
~~~ (2006-11-18 19:31:00) [6]Ну ситуация приблизительно такая: есть глобальная переменная типа TStringList, которую я изначально не хочу инициализировать (создавать), а хочу это сделать потом, т.к. сначала не ясно буду ли я использовать или нет.
У меня есть процедура которая добавляет данные в эту самую глобальную переменную.
procedure AddData(const Value: string);
begin
тут я хочу проверить создан обект List. т.е. если в первый раз вызываем процедуру - создаем List, иначе - просто добавляем данные.
List.Add(Value);
end;
Anatoly Podgoretsky (2006-11-18 19:21:00) [7]> ~~~ (18.11.2006 19:20:03) [3]
Зачем этот огрызок текста, что у тебя выше?
~~~ (2006-11-18 19:20:00) [8]Я хочу проверить создан ли этот объект или нет. Вот что я хочу. Я понимаю, что если ничего там не писать, то такой код будет исправно работать. Но это только пример, мне нужно проверить создан объект или нет.
Anatoly Podgoretsky (2006-11-18 19:17:00) [9]> ~~~ (18.11.2006 19:12:00) [0]
Тут ничего писать не надо.
KilkennyCat (2006-11-18 19:15:00) [10]begin