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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2012, 10:38   #1
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
Восклицание Критует при попытке показать форму

Почему-то критует если в OnCreate основной формы попробовать отобразить другую, она пустая Auto-Create.

Если запускать нажатием кнопки то все нормально.
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 19.09.2012, 10:51   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Потому что формы создаются в том порядке, в котором они указаны в файле проекта. Основная форма идет первой, остальные за ней. Поэтому, когда срабатывает OnCreate основной формы, та форма, которую Вы отображаете, еще даже не создана.
А когда жмете кнопку - она уже создана и скрыта.
Попробуйте на событие OnShow основной формы навесить показ другой.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 19.09.2012, 10:51   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А как критикует? В OnShow пробовали? В OnCreate Handle главной может еще не существовать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.09.2012, 11:01   #4
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А как критикует? В OnShow пробовали? В OnCreate Handle главной может еще не существовать
Сейчас перекину в OnShow, надеюсь это событие один раз срабатывает?

Я как-то модальные формы запускал из OnCreate, и все нормально было, сейчас переделал эту в модальную продолжает ругаться.

- - - -
Критует из OnShow, обращение к адресу памяти "000000"
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.

Последний раз редактировалось HellMercenariess; 19.09.2012 в 11:13.
HellMercenariess вне форума Ответить с цитированием
Старый 19.09.2012, 11:04   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Это событие срабатывает тогда, когда происходит MainForm.Show
FaTaL вне форума Ответить с цитированием
Старый 19.09.2012, 12:41   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Смотреть нужно что в dpr и как вызывается другая форма.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.09.2012, 14:22   #7
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Уже починил, после переделывания в модальную критовало из-за того что пробовал в Execute:Integer; возвращать число.

Сейчас исполняется из OnShow
Другие модальные формы нормально показываются в OnCreate, эта не хочет.
Когда пробовал другие были закомментированы*


Следующий вопрос может быть - как вернуть из модальной формы параметры, изменять из модальной формы глобальные переменные в основной не есть хорошо, надо всего-то одно значение перекинуть.
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.

Последний раз редактировалось HellMercenariess; 19.09.2012 в 14:26.
HellMercenariess вне форума Ответить с цитированием
Старый 19.09.2012, 14:27   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Следующий вопрос может быть - как вернуть из модальной формы параметры, изменять из модальной формы глобальные переменные в основной не есть хорошо, надо всего-то одно значение перекинуть.
Вот чего все к глобальным переменным привязались? Напиши класс - хранилище, пару set/get и понеслась. Да и чем глобальная переменная не устраивает? Назови ее как-нибудь очень элегантно типа - это_результат_такого-то_модального_окна и ты никогда ее не перепутаешь с другой. Да и в основной форме по определению не может быть глобальной переменной. Есть переменная к которой можно получить доступ из других объектов.

ЗЫ. В OnCreate не должны показываться окна. Я подозреваю, что у Вас не только окна не хотят показываться, но еще и память утекает, если явно окно.Free не делаете. Чего-то у Вас с проектированием программы не то.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 19.09.2012 в 14:36.
Utkin вне форума Ответить с цитированием
Старый 19.09.2012, 14:34   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Перед Free модальной формы и если удовлетворительный ModalResult из нее можно вытащить св-ва любого объекта, ее св-ва, значения переменныз из Puplic. Можно и из Private, если это происходит в том же юните, где модальная форма
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Показать форму при наведении phphel Общие вопросы Delphi 53 31.07.2010 20:45
Показать форму свернутую на панели задач Shouldercannon Общие вопросы Delphi 2 29.06.2010 18:24
System Tray - как показать форму поверх программы Opera SoftKoc Общие вопросы Delphi 8 02.01.2010 03:25
Как показать форму в Visual C++? Vitek-pm Visual C++ 2 21.02.2009 22:19
Как показать одну форму из другой в С++ по нажатию кнопки anton.metal Общие вопросы .NET 1 21.11.2008 19:38