Форум: "Основная";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];
ВнизКак узнать создан объект или нет Найти похожие ветки
← →
elf (2003-09-30 01:20) [0]var
a:tlabel;
begin
if ... then a:=tlabel.create(form1);
if a.создан=true (???) then ...
← →
Тих (2003-09-30 01:40) [1]возникнет исключение.
← →
Andy Bitoff (2003-09-30 01:48) [2]Если знаешь имя своего лабела то можно так;
var con:TControl;
.....
con:=Form1.FindChildControl("name_label");
if con <> nil then нашли
else не нашли
А если имени не знаешь, но надо найти первый лабел, то так;
var con:TControl;
i:integer;
.....
for i:=0 to Form1.ControlCount-1 do begin
con:=Form1.Controls[i];
if (con <> nil) and (con is TLabel) then Break;
end;
if con <> nil then нашли
else не нашли
← →
Zacho (2003-09-30 01:50) [3]
> Тих (30.09.03 01:40) [1]
> возникнет исключение.
Не обязательно.
2 elf :
В общем случае - никак. Ты должен сам об этом позаботиться. Например, инициализируй переменную-указатель на объект nil"ом, и присваивай ей nil после уничтожения объекта , используй для хранения указателей на объекты TList и т.п.
P.S. if a.создан=true (???) then ... тоже самое, что и просто if a.создан (???) then ...
← →
Zacho (2003-09-30 01:54) [4]
> Andy Bitoff (30.09.03 01:48) [2]
Посмотри на его код. Ну и как ты думаешь, какое имя будет у его Label"а ?
> con:=Form1.Controls[i];
> if (con <> nil)
Это условие всегда будет true.
← →
Andy Bitoff (2003-09-30 02:06) [5]Прошу простить!!!! Я не внимательно прочитал вопрос. Посыпаю голову пеплом.
← →
Andy Bitoff (2003-09-30 02:09) [6]>> con:=Form1.Controls[i];
>> if (con <> nil)
>Это условие всегда будет true.
Согласен. Поторопился.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c