Поиск сообщества
Показаны результаты для тегов 'tbutton'.
Найдено: 12 результатов
-
Добрый день! Требуется кнопка с стилизованым 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.
- 2 ответа
-
- tbutton
- tshadoweffect
-
(и ещё 1 )
C тегом:
-
Доброго времени суток. Помогите пожалуйста разобраться с динамическим созданием компонентов. Хочу создать на vertscrollbox несколько rectangle, На каждом из rectangle создать хочу попробовать создать tbutton и tlabel. Пока смог только создать несколько TRectangle. Получился вот такой: procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin for i :=1 to 30 do with TRectangle.Create(VertScrollBox1) do Parent:=VertScrollBox1 end; procedure TForm1.FormResize(Sender: TObject); var i: integer; begin for i :=0 to Box1.ComponentCount-1 do begin if box1.Components is TRectangle then with TRectangle(box1.Components) do begin Align := TAlignLayout.Top; Margins.Left:=10; Margins.Top:=15; Margins.Right:=15; end; end; Подскажите пожалуйста как на каждом из созданных TRectangle создать Tbutton и Tlabel?
-
Доброго! Есть ли аналог AllowAllUp для кнопок в FM?
-
... а почему? Теперь, например, для вызова обработчика через Synchronize надо создавать дополнительную процедуру вида procedure TForm1.bSyncronize; begin Button1.OnClick(Nil); end; которая далее вызывается как TThread.Synchronize(Nil, bSyncronize); И это вместо логичного TThread.Synchronize(Nil, Button1.Click);
-
Динамически создаю кнопку на панели. У панели цвет белый, у кнопки чёрный. По факту получается у кнопки цвет сероватый. У кнопки забиты параметры btn.TintColor := TAlphaColorRec.Black; btn.Opacity := 1; Возможно есть ещё какой-то параметр, влияющий на ось z? И, если честно, слабо поковырял стили. Не идёт у меня их познание почему-то.
-
Вопрос по сабжу хотелось бы решить без использования стилей. На андроид работает вот это Button1.TintColor := TAlphaColorRec.Blue На ИОС нет. Пробовал поиграть с StyleLookup...безрезультатно, фон прозрачный хоть тресни. Тех. характеристики в подписи.
-
Здравствуйте, ситуация следующая, есть кнопка, для нее нужно в событии при наведении мышкой, показать справа и слева два всплывающих окна, или так сказать подсказки , в одном картинка этого предмета в другой его описание, функции showhint нет, как это правильно сделать?
- 3 ответа
-
- TSpeedButton
- Hint
-
(и ещё 1 )
C тегом:
-
Имеется TImage, работает как кнопка. Можно ли создать анимацию её нажатия? Может быть реализовать плавную смену самой картинки на момент нажатия и обратная смена на исходную после того как палец отпустили? Подскажите как это можно описать
-
разработка для Android, Delphi XE7. Проблема следующая: На форме есть пара кнопок, при помощи компонента TButton, а так же множество кнопок, созданных динамически. В кнопках, созданных компонентом, изменениеразмера рифта текста решается банальной строчкой: TButton(obj).TextSettings.Font.Size := 40; В кнопках, динамически созданых, изменение шрифта подобным образом не помогает, при этом само свойство меняется. Фрагмент кода создания кнопки: btn := TButton.Create(PanelNew); btn.Parent := Self; btn.Position.X := (i - 1) * (w) + 10; btn.Position.Y := (j - 1) * (h) + 60; btn.Width := (w); btn.Height := (h); btn.Enabled := true; btn.Name := 'btn1'; btn.TextSettings.Font.Size := 40; btn.text := FloatToStr(btn.TextSettings.Font.Size); btn.OnClick := clickbtn; btn.TintColor := TAlphaColorRec.Null; это баг среды разработки, баг моих мозгов или чего-то не хватает? Проверил подобное на C++. Видимо баг в среде. Присутствует в кнопках, созданых любым способом. Заключается в следующем: В TButton.TextSetting.Font.Size по умолчанию прописано (Default) Пока это значение присутствует, любые изменения с размером шрифта игнорируются. Если в настройках визуального компонента поменять на любую цифру, то тогда вся работа со шрифтом коде будет работать. Вот только теперь не могу придумать, как изменить значение без визуального компонента.
-
TViewPort3D У меня некачественно отображаются контролы в TLayer3D
d7d1cd опубликовал вопрос в TViewPort3D
Привет всем. На 2D форму положил TViewPort3D, на него положил TLayer3D на котором разместил TLabel, TEdit, TButton и анимацию. При открытии формы 3D эффект работает, однако вид выше указанных компонентов совсем не презентабелен. Те же компоненты вне TViewPort3D и TLayer3D отображаются нормально. Такая проблема стала наблюдаться только в XE7. В XE6 ее не было. Прикрепил тестовый проект. Example.zip -
Как поменять например стиль кнопки для iOS? Чтобы была например не синяя обводка, а зелёная.