Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.13;
Скачать: CL | DM;

Вниз

Обмен опытом работы с MDI   Найти похожие ветки 

 
Тимохов ©   (2003-12-29 15:47) [0]

У меня есть задача:
1. Программа должна быть MDI.
2. Формы при открытии должны делать настройки (положение и размер компоментов, тексты и т.д.).
3. Размеры и положнеие формы должны сохраняться в реестре.

При решении этой задачи возникают такие проблемы:
1. Форма, у которой в дезайн-тайме установлено, FormStyle = fsMDIChild сразу после создания показывается на экране. И поэтому настройки формы, перечисленные в начале, видны пользователю.
2. Форма, у которой в дезайн-тайме установлено, Position = poDesigned сразу после создания становиться стандартных с точки зрения дельфи размеров. И дальнейшая попытка установить размеры формы, прочтенные из реестра, опять же видны пользователю.

С данной проблемой я справился тем, что в дезайн тайме форма объявляется как fsNormal, перекрываю CreateParams, где принудительно высталяю позицию и размеры формы после отработки inherited CreateParams, и уже после настроек формы делаю FormStyle := fsMDIChild.

Вопрос: как вы работаете с mdi приложениями, при схожих исходных задачах?


 
Тимохов ©   (2003-12-29 15:50) [1]

На самом деле вся беда в методе TCustomForm.SetFormStyle.
Совсем давно я делал так, что переписывал немного Forms.pas.
Сейчас я от этого отказался - обхожусь способами, описанными в вопросе.


 
sniknik ©   (2003-12-29 16:04) [2]

как бы я сделал
> 1.
в опциях проекта обьявил бы ее не auto-create формой а available при нужде создавал бы ее сам.

> 2.
устанавливал бы в размер в onCreate до показа формы юзеру.



Страницы: 1 вся ветка

Текущий архив: 2004.01.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
14-37924
panov
2003-12-17 21:18
2004.01.13
Резалки баннеров


6-37826
zxc
2003-11-14 13:53
2004.01.13
наверное глупый вопрос но всё же..


1-37756
LVV
2003-12-26 19:15
2004.01.13
Убираем HTML-тэги


6-37827
AlexanderSK
2003-11-10 16:54
2004.01.13
Несколько HTTP запросов один за одним


1-37702
sadretro
2003-12-25 23:02
2004.01.13
Как спрятать окно рабочей проги?