Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизApplication.CreateForm Найти похожие ветки
← →
Unknown (2005-01-14 13:35) [0]В приложении две формы. Form1 создаётся автоматически при запуске приложения, а Form2 создаётся при нажатии пользователя на кнопку (При помощи Application.CreateForm). Но если форма Form2 уже создана, и пользователь второй раз нажимает на кнопку, то эта форма создаётся и отображается ещё раз. Как это исправить. Я хочу, чтобы Form2 не создавалась во второй раз.
← →
Fay © (2005-01-14 13:37) [1]1) Убивай
2) Не создавай
3) где код?
← →
asafr © (2005-01-14 13:40) [2]if Assigned(Form2) then
FreeAndNil(Form2);
Application.CreateForm(TForm, Form2);
← →
begin...end © (2005-01-14 13:41) [3]
> Unknown (14.01.05 13:35)
> Но если форма Form2 уже создана, и пользователь второй раз
> нажимает на кнопку, то эта форма создаётся и отображается
> ещё раз. Как это исправить.
if not Assigned(Form2) then
// Создание формы
← →
Unknown (2005-01-14 13:41) [4]
> if not Assigned(Form2) then
> // Создание формы
Спасибо!
← →
Unknown (2005-01-15 09:42) [5]Функция Assigned не работает. Я пишу:
If not Assigned (Form2) then
Begin
Application.CreateForm (Tform2, Form2);
Form2.Visible := True;
End;
Если запускаю форму, то она открывается, и в это время вторая копия формы при повторном её вызывании не создаётся (как мне и требуется), но если я закрыл форму, то при повторной попытке её открытия ничего не получается, она не открывается.
← →
aus (2005-01-15 13:08) [6]Unknown (15.01.05 9:42) [5]
>ничего не получается, она не открывается.
в Form2.OnClose
Action := caFree
по умолчанию caHide, т.е можешь просто показать уже созданную форму.
If not Assigned (Form2) then
Application.CreateForm (Tform2, Form2)
else Form2.Show;
← →
Dr. Genius (2005-01-17 12:03) [7]Всё равно ничего не работает.
← →
HSolo © (2005-01-17 12:28) [8]Ищите форму в Screen.Forms; если не найдена - создавайте
← →
Developerr (2005-01-17 12:36) [9]Можно попробовать ввести переменную, например а, при старте приложения присвоить ей значение 0, а при создании фомы 2 присвоить ей 1. И перед создание формы 2 проверять
if a=0 then
begin
Application.CreateForm (Tform2, Form2);
Form2.Visible := True;
a:=1;
end
else
Form2.Visible := True;
← →
Fay © (2005-01-17 12:39) [10]идиотизм
← →
Fay © (2005-01-17 12:40) [11]Sorry, погорячился.
Но общий смысл тот же.
← →
Bel © (2005-01-17 13:21) [12]При убивании формы не забудь обnilить Form2.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c