Главная страница
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
1-37790
AGN
2003-12-29 11:19
2004.01.13
ListBox.Items.Add


3-37558
Yad
2003-12-15 14:51
2004.01.13
TDbf. Не работает фильтрация по дате.


8-37801
Tahion2
2003-09-06 13:54
2004.01.13
Конвертирование png2ico


14-37878
Думкин
2003-12-22 08:05
2004.01.13
С днем рождения! 22 декабря.


1-37715
CASPER
2003-12-30 22:59
2004.01.13
Подскажите если не трудно