Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2014, 13:53   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию Не возникнет ли проблем, если закрывать несозданные формы?

Добрый день.

Есть допустим 10 форм с разными упражнениями. ПОсле прохождения задания на каждой формы - открывается новая модальная форма с картинкой радости или грусти и результатом и кнопкой ОК.

По закрытию формы с результатом должна закрываться и форма с упражнением, которая вызвала результат.

Чтобы не парится с созданием 10 однотипных процедур на закрытие открытой формы, можно ли в форме РЕЗУЛЬТАТе (модальная форма) по закрытию прописать 10 разных Form.Close? Учитывая тот факт, что на данный момент открыта только 1 из этих 10 форм с упражнениями.

Проверил на своем компьютере, ошибок не возникает, но будет ли все нормально и на других?
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 05.04.2014, 13:57   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А что за упражнения? А если их 100 - 100 форм? Скорее всего для них достаточно одной формы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.04.2014, 14:24   #3
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Нет, это именно 10 форм с разными типами упражнений, и для них не достаточно одной формы.

На одних - перетаскивания в нужные места, на других - выбор одной из двух картинок, аудирование, тесты различного формата и тд и тп.

То есть это именно формы-шаблоны, на каждую из которых подгружается от 1 до 10 упражнений заданного типа в зависимости от сложности.

Теоретически, достаточно и одной формы. Но это добавит огромный геморой с описанием расположения миллиона разных компонентов, подгрузки картинок, присвоением кучи процедур и тд и тп. Не фонтан в общем.
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 05.04.2014, 15:28   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

pagecontrol и много tabsheet и одна форма
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.04.2014, 15:56   #5
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Времени на перенос кода уйдет намного больше, чем закрытие каждой формы по отдельности =)








P.S. Это только 6 типов из 11. В каждом типе по 5-10 упражнений. Это придется потратить неделю, чтобы решить проблему с подгрузкой безпонтовой формы.

Меня интересует, могут ли возникнуть ошибки при закрытии несуществующих форм? (которые к этому моменту еще не были созданы, или уже были уничтожены).

Если ошибок быть не должно - просто пропищу Форм Клоз каждой формы, если не желабельно, напишу 10 отдельных процедур на закрытие и буду вызывать в зависимости от формы.
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 05.04.2014, 16:08   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А что значит закрытие несуществующих форм? Если они созданы в dpr, то они существуют, хотя и не видимы. Close им не повредит. При этом смотря что еще в OnClose прописано. Если caFree, то следующий раз их нужно по новой создать. Если они создаются динамически, и до создания пытаться из закрыть, то ошибка обеспечена. Ну и все проверяется в процессе отладки и тестирования
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.04.2014, 16:18   #7
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А что значит закрытие несуществующих форм? Если они созданы в dpr, то они существуют, хотя и не видимы. Close им не повредит. При этом смотря что еще в OnClose прописано. Если caFree, то следующий раз их нужно по новой создать. Если они создаются динамически, и до создания пытаться из закрыть, то ошибка обеспечена. Ну и все проверяется в процессе отладки и тестирования
Спасибо
Что касается несуществующих, я думал, что если они изначально не прописаны в создании, то их и не существует) Потому что изначально у меня создается только 2 формы.
Код:
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
А потом уже, при различных действиях создаются и уничтожаются другие.

В таком случае, если я закрою Форм 10, ничего плохого не случится, верно? (при условии что все caFree, Creatы прописаны верно)

Просто у меня бывали моменты, когда на своем ноуте с 7й виндой все норм, а на ХР выскакивают ошибки какие-то. Сейчас вот возможности проверить нет, а сделать нужно уже вчера)
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 05.04.2014, 16:46   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Все формы созданные приложением в Screen.CustomForms. Их количество в Screen.CustomFormCount. Можно от этого плясать для анализа какие существуют, а какие нет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если знаешь Pascal С++ учиться без проблем?? Sylar9 Общие вопросы C/C++ 3 18.12.2011 12:42
Не закрывать форму troyan32 Общие вопросы Delphi 10 23.08.2011 17:15
не знаю куда писать поэтому пишу сюда просьба тему не закрывать а переместить в нужный раздел если такой DarkAngelOfLight Свободное общение 16 16.10.2010 02:59
Как вставить таймер в программу если нет формы durexa Помощь студентам 9 25.06.2007 13:13
можно ли использовать визуальные компоненты, если у приложения нет формы? Holly1444 Общие вопросы Delphi 8 19.11.2006 16:21