d7d1cd
-
Постов
277 -
Зарегистрирован
-
Посещение
-
Победитель дней
7
Сообщения, опубликованные d7d1cd
-
-
Alexander, прикладываю проект и исполняемый файл (на случай, если Вы пишете не на С++). Думаю, что Вам именно это надо.
-
Что значит "очистить предыдущий текст в клавиатуре"? Клавиатура у нас теперь хранит текст?
-
Все это можно сделать при помощи одной анимации.
В инспекторе объектов:
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. Однако с его помощью я не могу изменить картинку для конкретного стиля кнопки. Редактор вообще не показывает картинку кнопки. Подскажите, что я не так делаю.
-
На http://www.ginne.ru/ имеется бесплатный StyleEditor
Спасибо за ссылочку. Буду пробовать.
-
...при наведении мыши на контрол управления в панели(допустим кнопка) соотвественно панель сворачивается. По логике работы всё верно, но "оно мне так не надо".
Хм... А как Вам надо? И почему у Вас по логике верно, что при наведении мыши на контрол, панель должна свернуться? Как я понимаю, в обычном состоянии панель у Вас не должна быть видна. Тогда вопрос: куда надо навести курсор мыши, чтобы панель появилась? А если панель в обычном состоянии видна, то по Вашей "верной логике работы" при наведении на нее мыши панель свернется. Как же тогда на ней нажать кнопку?
-
- Откройте Notepad++
- загрузите в него Ваш стиль (*.style)
- найдите любой ....button и сделайте копию этого блока
- назовите его иначе (StyleName = '___buttonstyle')
- сохраните файл и откройте его в проекте - увидите вашу "новую" кнопку "___buttonstyle"
- меняйте ее как Вам угодно...
вот вы получите новый стиль кнопки
это просто самый быстрый вариант создать "унаследованный" вариант кнопки, но со своим стилем)
Вообще вариантов много...
Спасибо за совет. А подскажите еще как изменить картинку кнопки на какую-то свою?
-
Дважды клик по стайбуку, там создайте стиль, назовите его как вам угодно, потом стилю кнопки это имя ставьте.
Можно более подробно рассказать как именно создавать стиль?
-
Привет всем. Для кнопки есть много заданных стилей (backbutton, addbutton,backbuttontext и др.). Эти стили хранятся в StyleBook. Подскажите, как добавить в StyleBook свой стиль кнопки?
-
все делается кодом, то что вы в инспекторе поставили не значит, что оно по волшебству работает. так что не ленитесь и делайте
Понятно, что кодом можно сделать все. Я думал можно через инспектор... Значит буду делать. Спасибо всем!
-
rustam_d, Ваше решение хорошо подходит для того случая, когда количество кнопок постоянно. Однако в моей программе количество кнопок не будет постоянным.
)) по вашему тут на форуме везде примеры из реальных программ? вообще все стараются по проще, доходчивее...а динамика то ваш удел... и в моем примере можно )
И как же в Вашем примере можно сделать то, что мне надо?
-
это делается так
- TLayout = Top\Bottom
- TLayout = Center
- Button1 = Left\Right
- Button2 = Left\Right
- Button3 = Left\Right
- Button4 = Left\Right
- Button5 = Left\Right
В этом случае, при скрытии одной или нескольких кнопок, остальные кнопки будут прижаты к одному краю (левому или правому). При этом группа видимых кнопок будет уже не по центру окна. Здесь есть решение: нужно ширину второго Layout-а всегда устанавливать равной суммарной ширине видимых кнопок. Но вот хотелось бы решение, когда настроил в инспекторе объектов и забыл, так сказать.
-
rustam_d, спасибо за ответ и за картинки. Хочу обратить Ваше внимание на то, что я знаю что такое Margins. Кроме этого хочу сказать, что Ваше решение хорошо подходит для того случая, когда количество кнопок постоянно. Однако в моей программе количество кнопок не будет постоянным. Некоторые из них будут скрываться (отображаться) изменением свойства Visible. При этом группа кнопок, из какого бы количества она не состояла, должна оставаться в центре.
-
Приложил тестовый проект. Задача: настроить свойство кнопок 1, 2, 3 так, чтобы при изменении размеров окна, а так же при изменении видимости каждой из кнопок группа этих кнопок всегда была в центре. Размер кнопок меняться не должен, расстояние между кнопками меняться не должно.
-
Ну если ваши кнопки должны растягиваться и расстояние должно оставаться между ними ровно 20 пикселей, то сделайте у всех кнопок align=client и margin(top=5,bottom=5,right/left=10 кроме первого и последнего).
Нет, кнопки не должны растягиваться. Вот если необходимо чтобы кнопки были, например, справа и расстояние между ними 20, то я делаю у всех кнопок Align = Right, Margin->Left = 20. В результате они все аккуратненько стоят друг за другом в правой части родителя (TLayout). Если же сделать Align = Center, то все кнопки располагаются в центре друг на друге. При выравнивании справа, слева, сверху и снизу такого нет: они располагаются друг за другом. Почему выравнивание в центре располагает компоненты друг на друге?
-
Думаю, вам поможет TGridPanelLayout. Делаете один ряд с 5 колонками по 20% шириной. и внутри у каждого своего элемента делаете align=center и фиксированный размер 40х40. Это если я вас правильно понял.
Ваш совет хорош. Однако расстояние между кнопками не равно 20 пикселей. При разных размерах формы оно разное.
-
Доброго времени суток! На форме расположен TLayout. Установлены следующие свойства: Align = Bottom, Height = 50. Далее на него помещаются 5 кнопок все одинакового размера 40х40. Возможно ли только установкой свойств в инспекторе объектов сделать так, чтобы кнопки расположились горизонтально с равными промежутками в 20 пикселей и равномерно относительно центра TLayout? При изменении размеров формы указанное выравнивание должно сохраняться.
-
Не знаю, конечно, как остальным, но как по мне - так ссылка крайне неудачная... Отпадает желание смотреть.
Это точно! До просмотра, наверное, никто не дождался.
-
Есть конкретная задача: создать переменную класса, имя которого хранится в текстовом виде. Эта задача волнует меня давно. Вот подвернулась возможность снова обратить на нее внимание.
-
Взять и привести TControl к вашему классу фрейма.
У меня будет несколько фреймов. Соответственно классы у них разные. Кроме этого, переменная 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). Это для того, чтобы фрейм не занимал оперативную память, когда он не выведен на экран. Для вызова фрейма в главном окне нажимается кнопка. При нажатии для фрейма выделяется память, меняется надпись на кнопке и фрейм выводится на экран.
Как Вы понимаете, это тестовый проект.
-
вообще-то должно быть так (ну, со скидкой на синтаксис си):
Frame.Button1.Text := 'Привет из главной формы!';
Так сработает только если фрейм создается автоматически. У меня он создается вручную.
Всплывающая панель
в TFloatAnimation
Опубликовано
Понятно, что костыль. Но что делать...
По поводу Вашего метода: думаю, что мой метод лучше тем, что в нем используется только одна анимация, а так же минимум кода. Я, кстати, всегда стараюсь писать как можно меньше кода, ибо есть золотое правило: чем сложнее механизм, тем более вероятно, что он сломается. Хотя может я и не прав