Главная страница
    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.47 MB
Время: 0.074 c
15-1162025655
Zlodey
2006-10-28 12:54
2006.11.12
DirectX Help me !!!


2-1161834050
LexXL
2006-10-26 07:40
2006.11.12
BeforeNavigate


2-1161678395
JTAG
2006-10-24 12:26
2006.11.12
Добрый день, подскажите пожалуйста при помощи каких функция


15-1161699427
Krants
2006-10-24 18:17
2006.11.12
Nero и коммандная строка


2-1161841281
XTD
2006-10-26 09:41
2006.11.12
Посоветуйте хорошую компоненту по работе с *.DBF базами.





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