![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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) где код?