Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Мне нужно при первом запуске программы выводить окно с настройками

2.0K
16 апреля 2003 года
actor
21 / / 09.03.2003
Мне нужно при первом запуске программы выводить окно с настройками (как The Bat) я делаю это в событии onActivate главной формы но програма ругается на несуществующий адрес так как к этому времени окно с настройками не создано как это обойти.
3.6K
16 апреля 2003 года
Shadowfax
3 / / 16.04.2003
Тебе нужно прописать все это не в onActivate а в
событии OnShow это событие происходит когда форма собирается быть отображенной но все что написано там производится до появления формы на экране так что там надо прописать
FormNastr->ShowModal();
ShowModal()-показывает форму и передает ей управление, причем форма из которой она вызвана остается недоступной о закрытия той формы которая была вызвана этой функцией...
там еще много интересных нюансов но это главное)
2.0K
16 апреля 2003 года
actor
21 / / 09.03.2003
Цитата:
Originally posted by Shadowfax
Тебе нужно прописать все это не в onActivate а в
событии OnShow это событие происходит когда форма собирается быть отображенной но все что написано там производится до появления формы на экране так что там надо прописать
FormNastr->ShowModal();
ShowModal()-показывает форму и передает ей управление, причем форма из которой она вызвана остается недоступной о закрытия той формы которая была вызвана этой функцией...
там еще много интересных нюансов но это главное)


Это не подходит так как опять же к этому времени форма с настройками еще не создано, а OnShow происходит в конструкторе первой формы

362
17 апреля 2003 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by actor

Это не подходит так как опять же к этому времени форма с настройками еще не создано, а OnShow происходит в конструкторе первой формы



ОnShow происходит несколько позже конструктора, и даже позже OnCreate, если что.
Кроме того, совсем незачем ждать когда тебе создадут форму с настройками. Создай ее сам, когда нужно, хоть в OnShow, хоть в OnCreate, хоть в конструкторе, покажи, и уничтожь пока никто не заметил :-) - незачем в памяти лишнюю форму держать

2.0K
17 апреля 2003 года
actor
21 / / 09.03.2003
Цитата:
Originally posted by _kolyan


ОnShow происходит несколько позже конструктора, и даже позже OnCreate, если что.
Кроме того, совсем незачем ждать когда тебе создадут форму с настройками. Создай ее сам, когда нужно, хоть в OnShow, хоть в OnCreate, хоть в конструкторе, покажи, и уничтожь пока никто не заметил :-) - незачем в памяти лишнюю форму держать



Странно но в моей программе последовательность выполнения такая
вызываеть метод CreateForm в нем происходят события OnActivate и
OnShow естесвенно в это время Form2 еще не создано. А если всавляешь
создание второй формы она стоновиться главной.
Хотя в тестовой програмке все нормально вызываем CreateForm потом метод
Run и в нем происходят события OnActivate и OnShow.:(

362
18 апреля 2003 года
_kolyan
339 / / 03.12.2002
Вот пример:

//главный модуль
try
{
Application->Initialize();
Application->CreateForm(__classid(TwndClientDocMainForm), &wndClientDocMainForm);
Application->Run();
}

//модуль главной формы
void __fastcall TwndClientDocMainForm::FormCreate(TObject *Sender)
{
//создается и выводится форма запроса пароля
//в это время главная форма еще не видна на экране
TwndEnter *wndEnter = new TwndEnter(Handle);
wndEnter->ShowModal();
int Enter = wndEnter->Tag;
wndEnter->Free();
if(!Enter)
{
Application->Terminate();
return;
}
}
//---------------------------------------------------------------------------
2.0K
18 апреля 2003 года
actor
21 / / 09.03.2003
Цитата:
Originally posted by _kolyan
Вот пример:

//главный модуль
try
{
Application->Initialize();
Application->CreateForm(__classid(TwndClientDocMainForm), &wndClientDocMainForm);
Application->Run();
}

//модуль главной формы
void __fastcall TwndClientDocMainForm::FormCreate(TObject *Sender)
{
//создается и выводится форма запроса пароля
//в это время главная форма еще не видна на экране
TwndEnter *wndEnter = new TwndEnter(Handle);
wndEnter->ShowModal();
int Enter = wndEnter->Tag;
wndEnter->Free();
if(!Enter)
{
Application->Terminate();
return;
}
}
//---------------------------------------------------------------------------



Это с какого билдера я пишу в 5 и у меня вообще нет классов TwndClientDocMainForm и TwndEnter

362
18 апреля 2003 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by actor


Это с какого билдера я пишу в 5 и у меня вообще нет классов TwndClientDocMainForm и TwndEnter



А ты хочешь чтобы все называли свои формы Form1, Form2, Form3... :-)
называй их как хочешь, я свои так назвал :-))

2.0K
18 апреля 2003 года
actor
21 / / 09.03.2003
[QUOTE]Originally posted by _kolyan


Вопрос исчерпран пойду обходным путем тот способ который вы предложили мне неподходит так как в событиях OnCreate OnShow OnActivate Форма с настройками еще не создана, а если ее создавать самому она становиться главной формой (я сам не знаю почему) Спосибо всем кто ответил!
358
18 апреля 2003 года
moonmike
423 / / 18.10.2002
У меня в FormCreate главной формы есть следующий код:
TfrmMenuLoading *MLoad = new TfrmMenuLoading(this);
MLoad->ShowModal();
delete MLoad;

А форма TfrmMenuLoading как раз и занимается загрузкой меню для главной формы из БД и все работает без проблем, ив 5 и в 6 билдере.
2.0K
18 апреля 2003 года
actor
21 / / 09.03.2003
Цитата:
Originally posted by moonmike
У меня в FormCreate главной формы есть следующий код:
TfrmMenuLoading *MLoad = new TfrmMenuLoading(this);
MLoad->ShowModal();
delete MLoad;

А форма TfrmMenuLoading как раз и занимается загрузкой меню для главной формы из БД и все работает без проблем, ив 5 и в 6 билдере.



Вроде помогло спосибо :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог