2014-04-17 7 views
5

मेरे पास टीई चार्ट के साथ बनाया गया एक पाई चार्ट है, जो कि मैं जिस सिस्टम पर विकसित होता हूं, उस पर ठीक दिखता है, लेकिन जब मैं इसे एक अलग मशीन पर चलाता हूं, तो "पाई" सभी सर्कुलर होने की बजाय अंडाकार आकार में आ जाता है।एक पाई चार्ट "squished" बाहर आने का कारण क्या हो सकता है?

मैंने यह सुनिश्चित किया है कि Circled संपत्ति (जो सुनिश्चित किया जाना चाहिए कि हमेशा खींचा जाना चाहिए, एक अंडाकार नहीं है) TPieSeries पर सत्य सेट है और कहीं भी नहीं बदला जाता है।

मैंने यह सुनिश्चित करने के लिए जांच की है कि यह विभिन्न स्क्रीन संकल्पों का एक आर्टिफैक्ट नहीं है। यह; अन्य प्रणाली मेरे देव बॉक्स के समान संकल्प पर है।

अन्य सिस्टम एरो बंद हो गया था। मैंने अपने देव बॉक्स पर एरो को बंद करके चीजों का परीक्षण किया, और चार्ट squished बाहर नहीं आया था।

इस बिंदु पर मैं मूल रूप से विचारों से बाहर हूं। क्या किसी को पता है कि एक पाई चार्ट का कारण क्या हो सकता है जो Circled = true को सर्कल के बजाए अंडाकार के रूप में खींचने के लिए सेट कर सकता है?

अच्छा:Good pie chart बुरा:Bad pie chart

यह ठीक उसी कार्यक्रम, ठीक उसी डेटा बंद काम कर रहे, ठीक उसी स्क्रीन रिज़ॉल्यूशन पर दो अलग-अलग कंप्यूटरों पर है।

संपादित करें: टिप्पणियों में चर्चा के अनुसार, मैंने इसका परीक्षण किया और पाया कि दोनों प्रणालियों में न केवल एक ही संकल्प है, बल्कि एक ही डीपीआई है।

+2

मैं जाँच चाहते हैं क्या होगा LOGPIXELSX/LOGPIXELSY के लिए अन्य कंप्यूटर रिपोर्ट। –

+0

@SertacAkyuz: वे Windows.pas में परिभाषित स्थिरांक हैं। एक और प्रणाली अलग-अलग मूल्यों की रिपोर्ट कैसे करेगी जब ये स्थिरांक हों जो संकलन-समय पर पत्थर में सेट हो जाएं? –

+0

@ मेसन - बेशक मेरा मतलब है GetDeviceCaps को कॉल करना। –

उत्तर

6

डिबगिंग और इस मुद्दे की खुदाई के एक झुंड के बाद, यह पता चला है इस वजह TeeChart कोड HORIZSIZE और VERTSIZE मानकों के साथ GetDeviceCaps बुला रहा है, स्क्रीन पर पिक्सल के भौतिक आकार का निर्धारण और चक्र के सीमांकन समायोजित करने के लिए हो रहा है तदनुसार rect। दुर्भाग्यवश, this call is only valid on a printer, and not on a display device, and it has known issues on Windows 7, जो प्रश्न में दोनों सिस्टम उपयोग कर रहे हैं। मैंने स्टेमा को इस मुद्दे की सूचना दी है। उम्मीद है कि वे इसे ठीक कर सकते हैं।

अद्यतन: स्टीमा से एक प्रतिक्रिया मिली, जिसमें उन्होंने समस्या को स्वीकार किया और एक कार्यवाही प्रदान की। इसे यहाँ प्रतिलिपि बनाई जा रही मामले में किसी और समस्या में चलाता है:

एक वैकल्पिक आप वैकल्पिक हल समस्या, का उपयोग करते हुए शायद, चार्ट आयत की ऊंचाई आयाम आप की जरूरत को नियंत्रित करने के पाई त्रिज्या अनुकूलित करने के लिए है की अनुमति देता है।

उदाहरण के लिए:

procedure TForm9.Button1Click(Sender: TObject); 
var cHeight : Integer; 
begin 
    cHeight := Round((Chart1.ClientRect.Bottom - Chart1.ClientRect.Top) * 0.80); //80% 

    series1.CustomXRadius := cHeight div 2; 
    series1.CustomYRadius := series1.CustomXRadius; 
end; 
संबंधित मुद्दे