Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.12;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.067 c
6-1150107720
RealGanj
2006-06-12 14:22
2006.11.12
UDP пакет


15-1161954746
Гарри Поттер
2006-10-27 17:12
2006.11.12
грядет сухой закон?


15-1161434771
ReWQ
2006-10-21 16:46
2006.11.12
возникли сомнения!


15-1161784533
Сергиус
2006-10-25 17:55
2006.11.12
java приложения и игры


2-1161962845
чел
2006-10-27 19:27
2006.11.12
не отображается первичный ключ