![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
В общем, есть неразрешимая проблема!
![]() Есть MDI-форма на ней расположен CategoryPanelGroup (align=alLeft) и TabControl (align=alTop). http://s2.ipicture.ru/uploads/20110330/Gg1FFMxv.png Так вот каким образом сделать так, чтобы alLeft имел приоритет над alTop? http://s2.ipicture.ru/uploads/20110330/5T7RI5tK.png Единственное, что пришло в голову так это бросить TabControl на Panel и менять размер TabControl по изменению размера формы. Но в результате получается не совсем тот вид, который нужен. http://s2.ipicture.ru/uploads/20110330/tUCAR0QJ.png |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
||||
|
||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
В принципе, на скрине всё показано... Стандартно alTop имеет приоритет над alLeft, т.е. alTop, грубо говоря, отнимает у alLeft место. ![]() Если поставить у TabControl alClient, то не будет места для отображения MDIChild. TabControl в данном случае используется для переключения между дочерними окнами. |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
для TabControl не делай align, а используй Ancher, что бы правый его край двигался вместе с формой
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Valart |
|
||||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
Если для TabControl не делать Align, то дочерние окна подлезают под него. Добавлено через 4 минуты и 21 секунду
Нет, не проще. В программе иногда нужно будет рассматривать одновременно два или больше окон. Да и форм предполагается большое количество. |
||||
|
|||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
Судя по всему, проблема действительно неразрешимая, хотя кажется такой простой...
|
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
Кинь справа панель с alClient. А уже на эту панель TabControl alTop.
|
|||
|
||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
||||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
для дочерних окон можно парентом панель сделать, и они будут на ней показываться. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
||||
|
||||
_Dimon_ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 25.6.2007 Где: Украина Репутация: нет Всего: 1 |
1) Есть компонент TsFrameBar из пакета AlphaControls (для СНГ бесплатно даже в ком. целях).
Можно поменять MDI-Child на фреймы(а можно и не менять). События обработки есть в этом компоненте. (ну это другой вариант) 2) Не могу понять, почему не работает так, как предложил Frees в последнем посте. Может не так понял, но судя поскриншотам задача легко решается. З.Ы. Напиши как создаешь чилд-форму, может там че не то, хз...................... Это сообщение отредактировал(а) _Dimon_ - 5.4.2011, 01:23 |
|||
|
||||
Frees |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
нет я так не пробовал, поэтому и не посоветовал такой вариант в своем первом посте.
попробовал, не работает.. просто присвоить Parent не работает
при присвоении
Это сообщение отредактировал(а) Frees - 5.4.2011, 06:25 -------------------- Кольцов Виктор Владимирович |
||||||||
|
|||||||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
||||
|
||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
А он, этот TsFrameBar, может быть контейнером для форм? |
|||
|
||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
Попробовал сделать вот так:
![]() Т.е. бросил на форму CategoryPanelGroup (alLeft), Panel1 (alClient). На Panel1: TabControl (alTop) и Panel2 (alClient). Ну и написал Form2.Parent := Panel2. При этом Form1 и Form2 обычные, не MDI, формы. Но сразу же обнаружились недостатки: нельзя переключиться на форму, кликнув мышкой в произвольное место на ней, а только по заголовку; размер дочерней формы автоматически не меняется при изменении размера родительской. Т.е. всё это нужно будет дописывать руками. Это сообщение отредактировал(а) Valart - 7.4.2011, 09:02 |
|||
|
||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
Ну, с этим компонентом всё понятно. Не подойдёт он по ряду причин. Там же для переключения используются вертикально расположенные кнопки-заголовки, да и как с помощью него открыть на просмотр несколько окон? В общем, не годится! |
|||
|
||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
Кстати, кто-нибудь знает компонент-наследник от TabControl или TabSet для переключения между окнами?
|
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
||||
|
||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
В общем, решил, что всё-таки буду использовать MDI-формы. Потому как иначе возникнут лишние заморочки с доделыванием обычных форм до свойств и поведения MDI.
Для переключения между дочерними окнами нашел вот это: MDI ButtonGroup. А вот решение моего вопроса: Как обмануть align-ов ![]() Это сообщение отредактировал(а) Valart - 13.4.2011, 10:33 |
|||
|
||||
Gwire |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 216 Регистрация: 7.8.2007 Где: Николаев Репутация: 1 Всего: 4 |
Как вариан могу предложить следуюшее:
|
||||
|
|||||
Gwire |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 216 Регистрация: 7.8.2007 Где: Николаев Репутация: 1 Всего: 4 |
А по поводу переключения. В TabSet.Tag присваивай указатель формы которая связана с ним
|
||||
|
|||||
Gwire |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 216 Регистрация: 7.8.2007 Где: Николаев Репутация: 1 Всего: 4 |
Cовет: Чтобы не парить мозги что написать в AlignControls
1) Сохрани в папку с проектом файл Controls.pas. 2) Добавь его к проекту 3) И поменяй местами строки как тебе нравится (найди поиском):
PS: Этот вариант мне лично понравился. Это сообщение отредактировал(а) Gwire - 12.4.2011, 14:46 |
|||
|
||||
Valart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
Gwire, спасибо, но вариант с sql.ru мне нравится больше. Он, скажем так, более красивый.
![]() А по переключению, я просто не хочу обрабатывать вручную. Делал так когда-то, только с TabSet. Есть хороший бесплатный компонент, так почему его не использовать? ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |