![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как корректно создать несколько экземпляров формы...
Alex_Mel © (2005-10-11 14:06:00)Здравствуйте.
Мне необходимо создать несколько экземпляров одной и той же формы на экране. Формы закрываются сами по таймеру (или по щелчку мышкой), но при закрытии начинают валиться ошибки доступа к памяти.
Создаю так:
frm_Tmp:=Tfrm_Tmp.Create(Application);
Frm_Tmp.Tag:=Integer(Frm_Message);
Уничтожаю:
i:=frm_Tmp.Tag;
FreeAndNil(Tfrm_Tmp(i));
Обращаюсь:
Tfrm_Tmp(frm_Tmp.Tag).Top..........
Leonid Troyanovsky (2005-10-11 14:22:00) [1]
> Alex_Mel (11.10.05 14:16) [2]
> А как же тогда обращаться именно к этой форме в различных
> ее методах?
Единственным корректным способом обращения к самой форме
из ее методов является Self, в котором, обычно, нужды не возникает
(за исключением случаев конфликтов имен внутри блока with).
--
Regards, LVT.
Alex_Mel (2005-10-11 14:16:00) [2]>Eraser © (11.10.05 14:11)
А как же тогда обращаться именно к этой форме в различных ее методах?
Ведь форм, допустим пять, а метод, допустим OnTimer у них у всех один. Как в нем обратиться к нужной форме?
Eraser (2005-10-11 14:11:00) [3]
> Alex_Mel (11.10.05 14:06)
Создавай так
with Tfrm_Tmp.Create(Application) do
Show;
Закрывай методом Close, в обработчике OnClose впиши
Action := caFree;