Форум: "Начинающим";
Текущий архив: 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.035 c