2014-08-29 1 views
1

Я пытаюсь изменить цвет градиента TSpeedbutton во время выполнения с помощью ApplyStyleLookup, но по какой-то причине только верхняя часть второй кнопки кнопки меняет цвет. Когда я меняю его во время разработки, я вижу три точки для градиента. Я использую buttonstyle в TSpeedbuttons StyleLookup. Использование Delphi XE6 Rad Studio.Изменить градиент в ApplyStyleLookup

Спасибо. Добавлено 8/29/14 Я нашел способ изменить градиент, см. Ниже. Но моя проблема заключается в том, что на кнопочном стиле есть три прямоугольника, и тот, который мне нужен, - это прямоугольник2 под фоном. Что мне нужно для доступа к нему.

procedure TForm1.SpeedButton1ApplyStyleLookup(Sender: TObject); 
var 
    BckObject: TFmxObject; 
begin 
    BckObject := SpeedButton1.FindStyleResource('background'); 
    if Assigned(BckObject) and (BckObject is TRectAngle) then 
    begin 
    TRectAngle(BckObject).Fill.Gradient.Style := TGradientStyle.Linear; 
    TRectAngle(BckObject).Fill.Gradient.Points.Points[0].Color := $FF0097A5; 
    TRectAngle(BckObject).Fill.Gradient.Points.Points[0].Offset := 0.25; 
    TRectAngle(BckObject).Fill.Gradient.Points.Points[1].Color := $FF0097F5; 
    TRectAngle(BckObject).Fill.Gradient.Points.Points[1].Offset := 1.00; 
    end; 

end; 
+0

Это будет отличаться от стиля к стилю, прежде чем кто-либо сможет даже попытаться ответить, вы должны указать, какой стиль вы используете. Кроме того, почему вы используете «TSpeedButton», а затем установите стильLookup в стиле кнопок, просто используйте «TButton». – Peter

+0

В Stylelookup я выбрал кнопочный стиль, поэтому я не уверен, в каком другом стиле вы ссылаетесь. Я использовал Delphi с версии 2, и это моя первая попытка сделать приложение для Android с Delphi. Я использую приложения Eclipse для Android последние четыре года. Я использую TSpeedbutton, потому что я не хочу, чтобы кнопка фокусировалась при нажатии. –

ответ

0

rectangle2 (TRectAngle) в фоновом режиме имеет свойство StyleName пустым, путем ввода имени в StyleName и сохранить его, я могу получить доступ к rectangle2, используя тот же метод: BckObject: = SpeedButton1.FindStyleResource (» Мое имя');