| 
| 
 | Вопрос # 1 264/ вопрос открыт / | 
 |  Здравствуйте!
 Мне нужен компонент типа выдвижной панели, чтобы можно было поместить на него любые другие компоненты. Поставить где-нибудь на форме и при вызове функции он либо будет выдвигаться, либо выдвигаться.
 
 Такая панель например используется в Winamp'e как эквалайзер. Она выдвигается вниз вместе с компонентами на ней.
 
|  |   Вопрос задал: Виталий (статус: 2-ой класс)Вопрос отправлен: 12 января 2008, 17:28
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Виталий!А почему это обязательно должен быть компонент? Есть по крайней мере два варианта решения этой проблемы.
 Вариант 1
 Делаем ещё одну форму, которая будет появляться/скрываться при нажатии на кнопку. что бы сделать разворачивание - можно использовать таймер например, который будет его менять. тоесть кнопка только отображает форму и запускает таймер. а он уже потихоньку разворачивает и останавливается, когда размер стал достаточным. А выставив стиль borderStyle=bsNone - мы убираем заголовок и может оформлять форму, как хотим.
 
 Вариант два. Дополнительной формы нет. Просто изменяем размер основной формы. Но для создания эффекта подобного винампу, читаем статьи о формах произвольной формы, благо дело добра этого хватает. Например прям на этом сайте - https://www.delphi-int.ru/articles/4/
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 12 января 2008, 18:29
 Оценка за ответ: 4
 |  
 Мини-форум вопросаВсего сообщений: 7; последнее сообщение — 17 января 2008, 11:20; участников в обсуждении: 3. 
|   | Аксион (статус: 4-ый класс), 15 января 2008, 17:44 [#1]:Витя не слушай Вадима а лучше ищи в интернете компонент collapsepanel он тебе подойдёт (зачем делать самому если для нас это уже сделали) |  
|   | Виталий (статус: 2-ой класс), 15 января 2008, 19:14 [#2]:правильно говоришь, блазер! спасибо! |  
|   | Вадим К (статус: Академик), 16 января 2008, 02:12 [#3]:Обоим. Не один компонент не может быть за пределами формы. (ну разве что иконка в трее). Подумайте хорошо над этим. Так как эквалайзер отображается сбоку/снизу и имеет отличные размеры, то панелькой это быть не может. Это просто таже форма.
 А эффект вылета/пропадания можно вообще то сделать и без таймеров - пара строк апифункций.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Виталий (статус: 2-ой класс), 16 января 2008, 11:33 [#4]:я разобрался. сделал через дочерние формы. но для выдавижения я использую таймер (не стандартный а таймер из JEDI). а по-подрообней про апифункции можно узнать?
 |  
|   | Аксион (статус: 4-ый класс), 16 января 2008, 15:01 [#5]:Виталий сделай половину формы прозрачной и borderstyle:=bsnone и на край видимой части поставь collapsepanel и получитсо как тебе надо (чтобы сделать пол формы нивидимой используй transperentcolor и transperentcolorvalue) и давай заходи на ирк канал наш #delphiintru в сети DalNet. P.S. мои ошибки считайте за улыбки (если они тут есть)
 |  
|   | Вадим К (статус: Академик), 16 января 2008, 21:39 [#6]:Разворачивание формы можно сделать например так. в OnFormCreate вставляем код AnimateWindow(Handle, 500, AW_HOR_POSITIVE);
 потом идём сюда http://www.sysman.ru/index.php?showtopic=5376 и читаем о других константах, которые можно использовать
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Виталий (статус: 2-ой класс), 17 января 2008, 11:20 [#7]:ладно спасибо большое всем! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |