Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание и уничтожение дочерней формы


Страницы:   1 2

cyber-pilot ©   (2008-03-30 19:38:00) 

из основной формы создаю дочернюю:

if not Assigned(fmRefers) then
   fmRefers := TfmRefers.Create(Self, FParam);
 fmRefers.Show;


первый раз создается нормально, а после того как я ее закрываю и пытаюсь открыть снова условие не срабатывает, выдается ошибка.
Пробовал у дочерней формы писать так:
procedure TfmRefers.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Action := caFree;
 Self := nil;
end;

Не помогает. Как делать правильно?


cyber-pilot   (2008-03-30 21:39:00) [21]


> либо использовать механизм Notification для того, чтобы
> ее обнилить
> при разрушении формы.

Я пока в этом слабо разбираюсь.


> Да, и конструктор Create(Self, FParam) - некошерный,
> лучше, скажем, CreateWithParam, хотя можно просто
> присвоить параметры и после обычного Create(Self).


Если вы имеете в виду переименовать Create в CreateWithParam, то это не самый лучший вариант, т.к. можно по ошибке вызвать простой Create. Присваивать параметры после создания формы мне тоже не нравится, т.к. можно забыть их присвоить, хотя пока я не вижу другого способа.


> Loginov Dmitry ©   (30.03.08 21:19) [2]
> > Self := nil;
>
> Обоснуй смысл сией манипуляции!


Хотел обнилить объект, чтобы потом можно было проверить существует он или нет.


Loginov Dmitry   (2008-03-30 21:19:00) [22]

> Self := nil;

Обоснуй смысл сией манипуляции!


Leonid Troyanovsky   (2008-03-30 20:14:00) [23]


> cyber-pilot   (30.03.08 19:38)  

> Не помогает. Как делать правильно?

Либо не использовать ссылку fmRefers, что допустимо при Action := caFree,
либо использовать механизм Notification для того, чтобы ее обнилить
при разрушении формы.

Да, и конструктор Create(Self, FParam) - некошерный,
лучше, скажем, CreateWithParam, хотя можно просто
присвоить параметры и после обычного Create(Self).

--
Regards, LVT.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо