2012-09-28 5 views
5

다음 코드가있는 FireMonkey 폼이 폼의 OnPaint 이벤트에 있습니다. 나는 방사형 그래디언트가있는 공을 기대하고 있었지만 빨간 공만 받았다. 질문은 내가 뭘 잘못하고있다. XE3에서 실행. 그래디언트 스타일을 gsLinear로 변경하면 선형 그래디언트가 적용됩니다. 방사형 그래디언트를 표시하기 위해 다른 것을 지정해야합니까?Firemonkey에서 방사형 그래디언트를 만드는 방법

procedure TForm2.FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); 
var MyRect : TRectF; 
begin 
    MyRect.Create (85, 85, 115, 115); 

    Canvas.Fill.Gradient.Style := TGradientStyle.gsRadial; 
    Canvas.Fill.Gradient.Color := claRed; 
    Canvas.Fill.Gradient.Color1 := claBlue; 
    Canvas.Fill.Kind := TBrushKind.bkGradient; 
    Canvas.FillEllipse (MyRect, 100); 
end; 

답변

3

FireMonkey에 버그가있는 것 같습니다. 타원을 0,0에 그릴 경우 방사형 그래디언트가 표시됩니다. 다른 곳에서 타원을 그릴 때 그래디언트 원점은 이동하지 않지만 원점에 머물러 있습니다 (현재는 보이지 않지만). 이 버그는 오늘 현재로보고되었으며, 수정 될 때 또 다른 문제입니다. FMX 소스 코드를 패치하거나 (패치가없는) TEllipse 구성 요소를 사용하면됩니다.

관련 문제