2012-09-28 7 views
5

में रेडियल ग्रेडिएंट कैसे बनाएं मेरे पास फॉर्म के ऑनपेंट ईवेंट पर निम्न कोड के साथ फ़ायरमॉन्की फॉर्म है। मैं एक रेडियल ढाल के साथ एक गेंद की उम्मीद कर रहा था, लेकिन मुझे केवल एक लाल गेंद, कोई ढाल नहीं मिलता है। प्रश्न यह है कि मैं क्या गलत कर रहा हूं। इसे XE3 पर चलाना। यदि मैं ढाल शैली को जीएसलाइनर में बदलता हूं, तो मुझे रैखिक ढाल मिलता है। क्या रेडियल ढाल दिखाने के लिए मुझे कुछ और निर्दिष्ट करना है?फ़ायरमोनकी

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

फ़ायरमॉन्की में एक बग प्रतीत होता है। यदि आप 0,0 पर अंडाकार खींचते हैं, तो रेडियल ढाल दिखाई दे रहा है। जब अंडाकार कहीं और खींचा जाता है तो ढाल उत्पत्ति को स्थानांतरित नहीं किया जाता है लेकिन उत्पत्ति पर रहता है (हालांकि अब अदृश्य)। बग को जाहिर तौर पर आज के रूप में रिपोर्ट किया गया है, जब इसे तय किया जाएगा एक और मामला है। जिस तरह से यह एफएमएक्स स्रोत कोड को पैच करना है (लेकिन मेरे पास पैच नहीं है) या TEllipse घटक का उपयोग करें।