d7d1cd
Пользователи-
Постов
277 -
Зарегистрирован
-
Посещение
-
Победитель дней
7
Весь контент d7d1cd
-
Понятно, что костыль. Но что делать... По поводу Вашего метода: думаю, что мой метод лучше тем, что в нем используется только одна анимация, а так же минимум кода. Я, кстати, всегда стараюсь писать как можно меньше кода, ибо есть золотое правило: чем сложнее механизм, тем более вероятно, что он сломается. Хотя может я и не прав
-
Alexander, прикладываю проект и исполняемый файл (на случай, если Вы пишете не на С++). Думаю, что Вам именно это надо. PanelTest.zip PanelTestProject.zip
-
Все это можно сделать при помощи одной анимации. В инспекторе объектов: FloatAnimation1.PropertyName = "Scale.X"; FloatAnimation1.StartValue = 1; FloatAnimation1.StopValue = 3; FloatAnimation1.Inverse = true; procedure TForm1.Panel1MouseEnter(Sender: TObject); begin FloatAnimation1.Inverse = not FloatAnimation1.Inverse; FloatAnimation1.Start; end; procedure TForm1.Panel1MouseLeave(Sender: TObject); begin Panel1MouseEnter(this); end; Но только топикстартеру похоже это уже не надо.
-
Скачал StyleEditor. Однако с его помощью я не могу изменить картинку для конкретного стиля кнопки. Редактор вообще не показывает картинку кнопки. Подскажите, что я не так делаю.
-
Спасибо за ссылочку. Буду пробовать.
-
Хм... А как Вам надо? И почему у Вас по логике верно, что при наведении мыши на контрол, панель должна свернуться? Как я понимаю, в обычном состоянии панель у Вас не должна быть видна. Тогда вопрос: куда надо навести курсор мыши, чтобы панель появилась? А если панель в обычном состоянии видна, то по Вашей "верной логике работы" при наведении на нее мыши панель свернется. Как же тогда на ней нажать кнопку?
-
Спасибо за совет. А подскажите еще как изменить картинку кнопки на какую-то свою?
-
Можно более подробно рассказать как именно создавать стиль?
-
Привет всем. Для кнопки есть много заданных стилей (backbutton, addbutton,backbuttontext и др.). Эти стили хранятся в StyleBook. Подскажите, как добавить в StyleBook свой стиль кнопки?
-
Понятно, что кодом можно сделать все. Я думал можно через инспектор... Значит буду делать. Спасибо всем!
-
)) по вашему тут на форуме везде примеры из реальных программ? вообще все стараются по проще, доходчивее...а динамика то ваш удел... и в моем примере можно ) И как же в Вашем примере можно сделать то, что мне надо?
-
В этом случае, при скрытии одной или нескольких кнопок, остальные кнопки будут прижаты к одному краю (левому или правому). При этом группа видимых кнопок будет уже не по центру окна. Здесь есть решение: нужно ширину второго Layout-а всегда устанавливать равной суммарной ширине видимых кнопок. Но вот хотелось бы решение, когда настроил в инспекторе объектов и забыл, так сказать.
-
rustam_d, спасибо за ответ и за картинки. Хочу обратить Ваше внимание на то, что я знаю что такое Margins. Кроме этого хочу сказать, что Ваше решение хорошо подходит для того случая, когда количество кнопок постоянно. Однако в моей программе количество кнопок не будет постоянным. Некоторые из них будут скрываться (отображаться) изменением свойства Visible. При этом группа кнопок, из какого бы количества она не состояла, должна оставаться в центре.
-
Приложил тестовый проект. Задача: настроить свойство кнопок 1, 2, 3 так, чтобы при изменении размеров окна, а так же при изменении видимости каждой из кнопок группа этих кнопок всегда была в центре. Размер кнопок меняться не должен, расстояние между кнопками меняться не должно. Test.zip
-
Нет, кнопки не должны растягиваться. Вот если необходимо чтобы кнопки были, например, справа и расстояние между ними 20, то я делаю у всех кнопок Align = Right, Margin->Left = 20. В результате они все аккуратненько стоят друг за другом в правой части родителя (TLayout). Если же сделать Align = Center, то все кнопки располагаются в центре друг на друге. При выравнивании справа, слева, сверху и снизу такого нет: они располагаются друг за другом. Почему выравнивание в центре располагает компоненты друг на друге?
-
Ваш совет хорош. Однако расстояние между кнопками не равно 20 пикселей. При разных размерах формы оно разное.
-
Доброго времени суток! На форме расположен TLayout. Установлены следующие свойства: Align = Bottom, Height = 50. Далее на него помещаются 5 кнопок все одинакового размера 40х40. Возможно ли только установкой свойств в инспекторе объектов сделать так, чтобы кнопки расположились горизонтально с равными промежутками в 20 пикселей и равномерно относительно центра TLayout? При изменении размеров формы указанное выравнивание должно сохраняться.
-
Есть конкретная задача: создать переменную класса, имя которого хранится в текстовом виде. Эта задача волнует меня давно. Вот подвернулась возможность снова обратить на нее внимание.
-
У меня будет несколько фреймов. Соответственно классы у них разные. Кроме этого, переменная TControl может указывать не на фрейм, а на объект типа TScrollBox. Ваш совет хорош, сам думал над ним. В TControl есть переменная TagString. Там можно хранить имя класса объекта, указатель на который сейчас хранит сама переменная типа TControl. Но как привести указатель в TControl к классу в текстовой переменной? TControl *Control = new TFrame1(this); Control->TagString = L"TFrame1"; // Как теперь создать переменную класса, хранящегося в Control->TagString? // Возможно ли это?
-
Глубочайше извиняюсь, что запутал всех. Приведенный в моем вопросе код немножко не такой. В качестве указателя на фрейм у меня используется глобальная переменная типа TControl: // MainUnit.h TControl *Frame; void __fastcall TMainForm::Button1(TObject *Sender) { Frame = new TFrame1(this); Frame->Parent = this; } Именно поэтому через эту переменную я не могу напрямую "достать" кнопку.
-
Кнопка видна при отображении фрейма. Только я не могу в дизайнере задать надпись на ней. Надпись будет определена в процессе работы программы.
-
Наверное я не правильно выразился. Фрейм я создаю в системе (File->New->Other->C++Builder Files->FireMonkey Frame). Располагаю на нем кнопку и удаляю фрейм из автоматически создаваемых (Project->Options->Forms). Это для того, чтобы фрейм не занимал оперативную память, когда он не выведен на экран. Для вызова фрейма в главном окне нажимается кнопка. При нажатии для фрейма выделяется память, меняется надпись на кнопке и фрейм выводится на экран. Как Вы понимаете, это тестовый проект.
-
Так сработает только если фрейм создается автоматически. У меня он создается вручную.