Форум: "Основная";
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];
ВнизКак проверить... Найти похожие ветки
← →
NewComer (2001-12-29 14:07) [0]Есть переменная типа TForm, она не nil, как проверить указывает ли она на реально существующую форму? может форму уже освободили , а указатель на нее не "обнулили"...
try except не предлагать.
← →
Andrey (2001-12-29 14:10) [1]А может лучше обнулять указатель самому.
← →
NewComer (2001-12-29 14:18) [2]обнулить самому нет возможности.
← →
Andrey (2001-12-29 14:39) [3]Зная Owner-а формы можно
Owner.FindComponent("Name формы")=nil - Формы нет
Owner.FindComponent("Name формы")<>nil - Форма есть
Обычно Owner это Application.
А почему "обнулить самому нет возможности", по моему в OnClose формы можно вставить:
Action:=caFree;
Form:=nil;
← →
NewComer (2001-12-29 15:08) [4]Вот именно.. помню писал Action:=caFree; Self:=nil; почему то счас Self := nil, не отрабатываеться.. Хм.. почему?
← →
Andrey (2001-12-29 15:31) [5]Self - это один из указателей на объект.
Нам нужен другой указатель, а именно Form1, Form2, Form3 ... короче то что у формы в свойстве Name написано.
← →
NewComer (2001-12-29 15:35) [6]Да. Все верно. ежели переменную обнулить, то срабатывает(что неудивительно).. но как обнулить.. не зная имени ссылки?.. Self := nil, не срабатывает.
← →
Andrey (2001-12-29 15:44) [7]Почему Self := nil, не срабатывает понятно.
А как это "не зная имени ссылки"? Или у вас OnClose общий для нескольких форм. Но даже в таком случае можно для каждой формы сделать свой OnClose из которого вызывать общий.
procedure T Form2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
Form2:=nil;
end;
← →
NewComer (2001-12-29 15:48) [8]procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
Form2:=nil; <- Ошибка!
end;
...........
procedure Terra;
var F: TForm2; //!!! например
begin
F := TForm2.Create(Application);
......................
end;
← →
Andrey (2001-12-29 16:06) [9]Понял. Просто я такой конструкцией не пользовался. Тогда я думаю только через FindComponent.
← →
Anatoly Podgoretsky (2001-12-29 16:15) [10]Нужно устранить необходимость в повторном использовании переменной тогда и проверять не потребуется.
← →
Belov (2001-12-29 16:17) [11]if Assigned(Form1) = nil then
форма не существует
else
форма существует
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c