Форум: "Начинающим";
Текущий архив: 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