Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-1105700748
Andryk
2005-01-14 14:05
2005.01.30
Стишок про новый год, грустный. :(


14-1105583894
Kerk
2005-01-13 05:38
2005.01.30
lol. htaccess magic


1-1105613795
pavel_guzhanov
2005-01-13 13:56
2005.01.30
Как остановить работающую программу?


1-1106123979
MakNik
2005-01-19 11:39
2005.01.30
состояние файла


1-1105870546
Ilya___
2005-01-16 13:15
2005.01.30
Подскажите, как можно узнать какие ячейки выделенны в Excel?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский