Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MDI 
:(
    Опции темы
vikaz
Дата 14.8.2008, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



Ребята, всем привет!
Возник следующий вопрос.
Пишу приложение использующий MDI приложение. Как пологается любой программе, сначала идет Splash окно, после него идет главное окно программы. В свойстве FormStyle я ставлю fsMDIForm. Создаю меню, на одной из кнопок пишу следующий код

Код

 TForm *Form_Org = new TForm (Application);
 Form_Org->FormStyle = fsMDIChild;
 TLabel * Label1 = new TLabel (Form_Org);
 Label1->Caption = "121212121212";
 Label1->Parent = Form_Org;
 Form_Org->Show();
    

После компиляции и нажатия на соотвествующую кнопку, получаю следующее сообщение: "Cannot create form. No MDI form are current active".
После этого сообщения сделал главное окно программы в Project->Options->Forms->Main form->Form1, главным.
когда запустил приложение дочернее окно создалось нормально, но splash естественно не показался.
Подскажите, как запустить все это дело, чтобы было как положено?
Заранее спасибо.



--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
mrbrooks
Дата 14.8.2008, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Splash окно вызывай в OnShow() главной формы. Оно же (Splash окно ) у тебя вырубается наверно по таймеру или событию? 
PM MAIL   Вверх
vikaz
Дата 14.8.2008, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



по событию. как только пытаюсь создать окно, сразу и вылетает ошибка. т.е. я понимаю, что все же главным окном в системе должно быть MDI окно?



--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
mrbrooks
Дата 14.8.2008, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



я думаю что да.
PM MAIL   Вверх
vikaz
Дата 14.8.2008, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



Жесть. тогда непонятно, как 1С написали так интересно свой движок! Ну да ладно, буду тогда делат по хитрому. Спс



--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
mrbrooks
Дата 14.8.2008, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



можно поступить так.
создаешь форму - скажем SplashForm - кидаешь на нее то что тебе нужно. затем в свойствах проекта выкидываешь ее из auto-create forms в available forms.
затем в Project->ViewSourse в функции WinMain

Код

#include "заголовочник SplashForm"

WINAPI WinMain(...)
{

 try
 {
     SplashForm = new TSplashForm(Application);
     SplashForm->Show();
     SplashForm->Update();
     ....
    Application->ShowMainForm = false; 
    Application->Run();
 }
}


в обработчике закрытия формы SplashForm

Код

Главная форма->Show();

PM MAIL   Вверх
vikaz
Дата 14.8.2008, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



Спасибо, именно такое и хотел реализовать. Вечером буду проверять! smileЕще раз спс.



--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
vikaz
Дата 15.8.2008, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



Заметил следующий вещь.
если вместо 

SplashForm = new TSplashForm(Application);
SplashForm->Show();

написать 
SplashForm->ShowModal();

то все получается намного интереснее. После закрытия окна, главная сама появляется!  smile 


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
vikaz
Дата 15.8.2008, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



сегдня нашел!
Подходят к молодому человеку темные личности. 
- Это ограбление! Живо! Ценности сюда!
- Да вы что, какие ценности! Я же программист!
- А, ну тогда это запрос! Живо! SELECT * FROM Карманы!


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
mrbrooks
Дата 15.8.2008, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(vikaz @ 15.8.2008,  06:01)
Заметил следующий вещь.
если вместо 

SplashForm = new TSplashForm(Application);
SplashForm->Show();

написать 
SplashForm->ShowModal();

то все получается намного интереснее. После закрытия окна, главная сама появляется!  smile

разумеется она же модальная. как хочешь так и изголяйся. 
PM MAIL   Вверх
vikaz
Дата 6.10.2009, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



Вопрос! простой проект:
1. создаем форму, в свойствах FormStyle = fsMDIForm; На форме размещаем Panel в свойствах Align = alRight. Новую форму MDI Shild создаем так: 
Код

 TForm2 * Form_Shild = new TForm2 (Application);
 Form_Shild->Show();

После того как создаем окно и делаем чтобы он раскрылся на всю форму, он не учитывает, что справа находится панель, и спокойно встает за ней. Как сделать так, чтобы раскрывалось только "видимых" границ?


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.