Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выравнивание компонентов


Loginov Dmitry ©   (2006-06-30 19:16:00) 

Разрабатываю MDI-приложение. Не получается сделать на вид простую вещь:
есть две панели - у первой Align = alLeft, у второй Align = alBottom. Получается, что вторая панель занимает всю нижнюю часть экрана, а первая панель лежит сверху на второй. Как сделать, чтобы первая панель занимала всю левую часть экрана, а вторая примыкала к ней справа (в оставшейся области формы должны располагаться дочерние MDI-окна)?


Loginov Dmitry   (2006-06-30 22:07:00) [1]

> guav ©   (30.06.06 21:38) [9]


Отличная мысль! Сенкс!


guav   (2006-06-30 21:38:00) [2]

Есть такая идея: Поставить у MDI формы autoscroll в False. Ккинуть на MDI форму две панели alLeft alBottom как они хотят лежать. Кинуть ещё две панели выше первых двух по z-orderу. В OnResize первых двух устанавливать уже желаемое положение последних двух.


Loginov Dmitry   (2006-06-30 21:26:00) [3]

> 1. Справка по CustomAlignPosition не соответствует истине
> 2. Метод CustomAlignPosition в контролс, как оказалось,
> нигде не вызывался, по крайней мере в VCL source я никаких
> вызовов не обнаружил...


В Инете нашел про это, проверил, поэтому и написал [4]


> Vlad ©   (30.06.06 21:19) [7]


Прикольно :)


Vlad   (2006-06-30 21:19:00) [4]

хм... интересная задача.
Вобщем-то решил через задницу, путем внедрения одной формы в другую.
Т.е. в проекте еще добавил не MDIформу с панелью alLeft, а потом в эту форму встроил MDI форму (главную) с панелью alBottom
Всех тонкостей не проверял, но вроде работает


Palladin   (2006-06-30 20:36:00) [5]


> alCustom - дает эффект такой же, как и с обычными якорями
> (использовал override-функцию CustomAlignPosition).


да нет (меня эта проблема заинтересовала), с alCustom все гораздо хуже...

1. Справка по CustomAlignPosition не соответствует истине
2. Метод CustomAlignPosition в контролс, как оказалось, нигде не вызывался, по крайней мере в VCL source я никаких вызовов не обнаружил...
3. Выход только один, наследник от TForm (или поглубже) и рассказ создаваемой форме что она не в Application.MainForm, а в доп панели...


Loginov Dmitry   (2006-06-30 20:24:00) [6]

Я уже начинаю побаиваться, что данная проблемма нерешаема...

alCustom - дает эффект такой же, как и с обычными якорями (использовал override-функцию CustomAlignPosition).

Есть ли у кого еще какие идеи?


Palladin   (2006-06-30 19:29:00) [7]


> Здесь сей фокус не прокатит...

да в порыве энтуазизьма не заметил про MDI...


Loginov Dmitry   (2006-06-30 19:28:00) [8]

> которая alLeft не трогать, положить доп панель и сделать
> alClient, и уже на доп панел ложить ту которая alBottom


Здесь сей фокус не прокатит...


Palladin   (2006-06-30 19:28:00) [9]

упс, это же MDI... просшу просчения... либо alCustom для панелей либо надо подумать...


Palladin   (2006-06-30 19:21:00) [10]

которая alLeft не трогать, положить доп панель и сделать alClient, и уже на доп панел ложить ту которая alBottom

если хочется страшного и не хочется кидать доп понель, то почитай справку по alCustom


Наверх

Титульная страница Поиск, карта сайта Написать письмо