Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Вниз

Форма и экран   Найти похожие ветки 

 
VALUA   (2006-10-26 16:55) [0]

Господа , здравствуйте !
У меня большой проект и формы я создавала при необходимости обращения , клиент просит , чтобы не выходя из одной формы можно было работать с другой .
Было :
 Application.CreateForm(TForm3,Form3);
 Form3.ShowModal;
 Form3.Free;

Если  :
 Application.CreateForm(TForm3,Form3);
 Form3.Show;
 Form3.Free;
то форма не появляется на экране , она как бы сразу и удаляется , пришлось делать автоматическое создание при вызове проекта и  только Form3.Show;

Хотелось бы оставить как было , но открывать форму в обычном режиме , а не в модальном , и чтобы форма не уничтожалась а появлялась на экране :
 Application.CreateForm(TForm3,Form3);
 Form3.Show;
 Form3.Free;

Может быть кто-то знает , где и какая мелочь упущена .
Всем спасибо .


 
Johnmen ©   (2006-10-26 16:59) [1]

Так перенеси Free туда, где форма уже не нужна...


 
Anatoly Podgoretsky ©   (2006-10-26 17:15) [2]

Free вообще не надо, в OnClose - Action := caFree;


 
Сергей М. ©   (2006-10-26 17:17) [3]


> не выходя


Эт чего такое ?


 
Anatoly Podgoretsky ©   (2006-10-26 17:19) [4]

И вот это не надо тоже
Application.CreateForm(TForm3,Form3);
Form3.Show;


живи проще
TForm3.Create(Self).Show;


 
Anatoly Podgoretsky ©   (2006-10-26 17:21) [5]


> Эт чего такое

Это значит не Модал


 
Desdechado ©   (2006-10-26 17:37) [6]

> Free вообще не надо, в OnClose - Action := caFree;
Если создание один раз, то при закрытии формы ее надо прятать, т.е. caHide.
Тогда ее можно будет сноdа Show.
А Free можно сделать уже при закрытии приложения.

ЗЫ я предпочитаю не лепить автосоздаваемых 100 форм, потому как пользователь может за сеанс зайти в 4-5, а остальные просто будут висеть впамяти мерствым грузом.


 
Savek   (2006-10-26 18:01) [7]


> Free вообще не надо, в OnClose - Action := caFree;
> <Цит

и туда же добавить Form3:=nil;


 
Anatoly Podgoretsky ©   (2006-10-26 18:20) [8]

Ни в коем случае, это сразу намекает на повторное использование и первое что надо сделать в проекте, это удалить переменную формы, тогда будешь спать спокойно. Нет человека, нет проблемы, знаешь кто сказал? Так вот мысль эта верная.


 
VALUA   (2006-10-30 11:28) [9]

Сделала -
  TForm3.Create(Self).Show;
или
 TForm3.Create(Application).Show;

при вызове формы выдает соообщение об ошибке , что еще я не сделала , где - то что-то надо еще создать .

Пришлось пока сделать так :
 Form3 := TForm3.Create(Application);
 Form3.Show;
а при выходе :  
 OnClose - Action := caFree;


 
MikePetrichenko ©   (2006-10-30 11:35) [10]


> и туда же добавить Form3:=nil;

Не верно.

А если, по какой-то причине (форма то не модальная), человек два раза нажал на кнопочку и создалось ДВА (или больше) экземпляров одной формы???

Что тогда NIL?

По сему вот это

> TForm3.Create(Self).Show;


Лучше написать так:

if not Assigned(Form3) then Form3 := TForm3.Create(Application);
Form3.Show;

И только после этого можно в OnClose писать Form3 := nil;.

Спасибо за внимание!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
15-1161601984
Layner
2006-10-23 15:13
2006.11.12
Кто работает с беспл. инсталятором NSIS (v2.2)


2-1161946280
dm37
2006-10-27 14:51
2006.11.12
Модальная форма


5-1142506194
Ice
2006-03-16 13:49
2006.11.12
Перекрытый Paint.


6-1147464029
ChainikDenis
2006-05-13 00:00
2006.11.12
Сменить номер порта idUDPclient и idUDPServer в RunTime


15-1161323524
xayam
2006-10-20 09:52
2006.11.12
Уравнение любви





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский