Перейти к содержанию
Fire Monkey от А до Я
  • 0

Круглая кнопка


Winexcel

Вопрос

Здравствуйте, собственно сабж, интересует как сделать чтобы при наведении на кнопку эффекты применялись именно когда мышь наведена на круг. Пробовал сделать так:

Через стили добавил TRectangle с бордер радиусом, в него положил кнопку..

Но при наведении на такую кнопку она все равно прямоугольная, и края прямоугольника реагируют при наведении мыши..

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

наверное только самостоятельно по координатам мыши рассчитывать, попадают ли они в круг заданной окружности. если попадают - вкл необходимые эффекты. если нет - выключать.

Ссылка на комментарий
  • 0

Вот набросал на скорую руку примерчик (может конечно не идеальный пример, но сегодня что-то голова совсем деревянная)

12345.gif.7c9d356803c9928cebe001c8c5025fe7.gif

111.zip

Изменено пользователем sinuke
Ссылка на комментарий
  • 0

Попробовал реализовать стилем - никаких проблем не возникло:

  object TEllipse
    StyleName = 'ButtonEllipseStyle'
    Align = Center
    Size.Width = 256.000000000000000000
    Size.Height = 191.000000000000000000
    Size.PlatformDefault = False
    object TColorAnimation
      Duration = 0.500000000000000000
      Inverse = True
      PropertyName = 'Fill.Color'
      StartValue = x00808080
      StopValue = xAF808080
      Trigger = 'IsMouseOver=true'
      TriggerInverse = 'IsMouseOver=false'
    end
  end

EllipseButton.gif.b19c8eea01cd3681c7b8ef65c74611a3.gif

 

UPD!

Мммда... Насчет проблем я поторопился...

Для того чтобы отследить клик по кнопке надо переопределить клик для TEllipse в стиле:

procedure TForm1.btnTestApplyStyleLookup(Sender: TObject);
var
  el: TEllipse;
begin
  if TStyledControl(btnTest).FindStyleResource<TEllipse>('ButtonEllipseStyle', el) then
    el.OnClick := btnTestClick;
end;

 

Изменено пользователем dnekrasov
Ссылка на комментарий
  • 0

Если кому то нужна круглая кнопка со сглаживанием под Android\iOS - то ставьте компоненты @Равиль Зарипов (ZuBy), сделанные на основе модуля FMX.Graphics.Native.pas от одного китайского программиста.

https://github.com/rzaripov1990/ZMaterialComponents ( тут все готово, сам модуль отдельно скачивать не надо.)

Дальше кидаем TZNativeDrawFigureCircle1, в него лэйбл и TColorAnimation как указано выше.  

OnClick работает без проблем, только не забудьте поставить кругу HitTest := true, а у лэйбла false. 

Изменено пользователем ENERGY
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...