Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как изменить размеры MDIClient, Изменить размеры рабочей области MDI 
:(
    Опции темы
dwik
Дата 1.2.2012, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Столкнулся с такой проблемой.
У меня классическое mdi-приложение. Но на главной форме присутсвуют ряд контролов без установленных полей Align.
Мне требуется ограничить область вывода для дочерних окон, чтобы они не наезжали на эти самые контролы.

Как известно, MDIChield открывается в пределах некой рабочей области главного окна, называемой MDIClient, и cоответственно при максимизации пытается занять всю эту область. Проблема в том, что если Align посторонних компонентов на главной форме стоит alNone, то дочерние окна спокойно открываются поверх них. По определенным причинам выставить другой Align я не могу

Как можно динамически менять размеры рабочей области MDIClient ??? Кто решал эту проблему ?

PM MAIL   Вверх
БелАмор
Дата 1.2.2012, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 5
Всего: 17



Положите панель, задайте ей выравнивание, а на ней разместите всё, что нужно.

PM   Вверх
dwik
Дата 1.2.2012, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В этом и проблема - так сделать не могу. У меня 2 док-панели с align Bottom и left. В угол между ними нужно поместить третью панель, но если выставить есть Bottom, то она выйдет из отведенного ей места и уйдет вровень с нижней панелью (той, у которой align=bottom)

PM MAIL   Вверх
БелАмор
Дата 1.2.2012, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 5
Всего: 17



А зачем вам класть все три панели непосредственно на форму?
Допустим, у вас нижняя панель - во всю ширину, тогда на неё положите две панели: одну с выравниванием влево, вторую - по клиенту. У левой панели выставляете ширину по той панени, которая находится непосредственно на форме с выравниванием влево.

PM   Вверх
RomanEEP
Дата 3.2.2012, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 5
Всего: 8



Код

TFormMain = class(TForm)
  ....
  procedure AlignControls(AControl: TControl; var Rect: TRect); override;
end;

procedure TFormMain.AlignControls(AControl: TControl; var Rect: TRect); override;
begin
  inherited;
  MoveWindow(ClientHandle, MyLeft, MyTop, MyWidth, MyHeight, False);
end;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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