Перейти к содержанию
  1. Шамсуддин

    Шамсуддин

  2. dnekrasov

    dnekrasov

  • Похожий контент

    • От ddr 2
      Добрый день!
      Требуется кнопка с стилизованым Disabled. Пошел по пути подмены Стиля. И раз уж все равно решается это только через наследование TButton, то хочется сразу интегрировать в компонент ТЕНЬ. Сделал. Код ниже. Работает, но есть вопросы и моя реализация с тенью явно требует изменений.
      Вопрос 1(ОСНОВНОЙ).

      При каждом открытии проекта, к каждой кнопке TButtonWithShadow добавляется новая(ещё одна) тень(см. картинку). Как от этого избаваться?
      Вопрос 2. Выбор подменяемого Стиля я реализовал через   published  property StyledDisabled:String read FStyledDisabled write FStyledDisabled; При этом в Дизайнере данное свойство - строка. Как сделать не строку, а выпадающий список по аналогии с StyleLookup?
      Вопрос 3. Опытным путем(и немного чтением этого форума) выяснил, что для того, что бы Стили отображались в StyleLookup необходимо, что бы стили имели имя по маске "ButtonWithShadow*".Возможно ли влиять(изменить) на маску?
      Вопрос 4. Текущая реализация запоминания(FFStyledEnabled:=StyleLookup;) основного стиля кнопки(для обратной подмены) в procedure TButtonWithShadow.EnabledChanged;  при каждом изменении значения с ИСТИНЫ на ЛОЖЬ свойства Enabled, совсем не изящное. Однократное сохранения значения свойств я ранее делал, в AfterConstruction, но с StyleLookup такой подход не работает.
      Вопрос 5. В моей задаче кпопка "безфокусная". Соответсвенно и статус Focused в основном Стиле не используется. Возможно ли Disabled реализовать через подмену Focused<->Normal в основном используемом Стиле?
       
      unit UButtonWithShadow; interface uses FMX.StdCtrls,System.Classes,FMX.Effects,System.UITypes,FMX.Types; type TButtonWithShadow = class(TButton) private protected FShadow:TShadowEffect; FStyledDisabled:String; FFStyledEnabled:String; procedure EnabledChanged; override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure AfterConstruction; override; published property StyledDisabled:String read FStyledDisabled write FStyledDisabled; end; procedure Register; implementation procedure Register; begin RegisterComponents('Мои компоненты', [TButtonWithShadow]); end; constructor TButtonWithShadow.Create(AOwner: TComponent); Begin inherited; DisabledOpacity := 1; //отключаем прозрачность для enabled=false TextSettings.Font.Family:='Roboto'; TextSettings.Font.Size:=36.0; TextSettings.Font.Style:=[TFontStyle.fsBold]; StyledSettings:=[TStyledSetting.Style,TStyledSetting.FontColor]; FShadow:= TShadowEffect.Create(self{nil}); FShadow.Direction:=45; FShadow.Distance:=5; FShadow.Softness:=0.2; FShadow.ShadowColor:=TAlphaColorRec.Dimgray; FShadow.Trigger:='IsPressed=false'; FShadow.Parent := Self; //AddObject(FShadow); End; destructor TButtonWithShadow.Destroy; Begin //RemoveObject(FShadow); FShadow.Free; inherited; End; procedure TButtonWithShadow.AfterConstruction; Begin // NeedStyleLookup; // ApplyStyleLookup; FFStyledEnabled:=StyleLookup; //Пустая строка. inherited; End; procedure TButtonWithShadow.EnabledChanged; Begin if Enabled then StyleLookup:=FFStyledEnabled else if FMX.Types.FindStyleResource(FStyledDisabled)<>nil then Begin FFStyledEnabled:=StyleLookup; StyleLookup:=FStyledDisabled; End; End; end.  
    • От Schekhovtsov
      Объясню чуть подробнее, пример смотреть в любом приложение с material design'ом (например, inbox). В скроллбоксе находится список и тулбар. При прокрутке вниз, тулбар вместе со списком уходит вверх за экран,но если немного вернуть список сверху, то тулбар сразу «приедет» обратно. Понятно объяснил? Можно такое провернуть на delphi?
    • От #WAMACO
      Кто нибудь пытался реализовать Material Design на FireMonkey?
      Если "Да", то как успехи?
  • Последние посетители   0 пользователей онлайн

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

×
×
  • Создать...