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

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

Application.CreateForm [D6, WinXP]


Unknown ©   (2005-01-14 13:35:00) 

В приложении две формы. Form1 создаётся автоматически при запуске приложения, а Form2 создаётся при нажатии пользователя на кнопку (При помощи Application.CreateForm). Но если форма Form2 уже создана, и пользователь второй раз нажимает на кнопку, то эта форма создаётся и отображается ещё раз. Как это исправить. Я хочу, чтобы Form2 не создавалась во второй раз.


Bel   (2005-01-17 13:21:00) [1]

При убивании формы не забудь об nilить Form2.


Fay   (2005-01-17 12:40:00) [2]

Sorry, погорячился.
Но общий смысл тот же.


Fay   (2005-01-17 12:39:00) [3]

идиотизм


Developerr   (2005-01-17 12:36:00) [4]

Можно попробовать ввести переменную, например а, при старте приложения присвоить ей значение 0, а при создании фомы 2 присвоить ей 1. И перед создание формы 2 проверять

if a=0 then
begin
  Application.CreateForm (Tform2, Form2);
  Form2.Visible := True;
  a:=1;
end
else
 Form2.Visible := True;


HSolo   (2005-01-17 12:28:00) [5]

Ищите форму в Screen.Forms; если не найдена - создавайте


Dr. Genius   (2005-01-17 12:03:00) [6]

Всё равно ничего не работает.


aus   (2005-01-15 13:08:00) [7]

Unknown   (15.01.05 9:42) [5]
>ничего не получается, она не открывается.

в Form2.OnClose

Action := caFree
по умолчанию caHide, т.е можешь просто показать уже созданную форму.

If not Assigned (Form2) then
  Application.CreateForm (Tform2, Form2)
else Form2.Show;


Unknown   (2005-01-15 09:42:00) [8]

Функция Assigned не работает. Я пишу:

If not Assigned (Form2) then
 Begin
   Application.CreateForm (Tform2, Form2);
   Form2.Visible := True;
 End;

Если запускаю форму, то она открывается, и в это время вторая копия формы при повторном её вызывании не создаётся (как мне и требуется), но если я закрыл форму, то при повторной попытке её открытия ничего не получается, она не открывается.


begin...end   (2005-01-14 13:41:00) [9]


> Unknown   (14.01.05 13:35)


> Но если форма Form2 уже создана, и пользователь второй раз
> нажимает на кнопку, то эта форма создаётся и отображается
> ещё раз. Как это исправить.

if not Assigned(Form2) then
 // Создание формы


Unknown   (2005-01-14 13:41:00) [10]


> if not Assigned(Form2) then
>  // Создание формы


Спасибо!


asafr   (2005-01-14 13:40:00) [11]

if Assigned(Form2) then
 FreeAndNil(Form2);

Application.CreateForm(TForm, Form2);


Fay   (2005-01-14 13:37:00) [12]

1) Убивай
2) Не создавай
3) где код?


Наверх

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