• 一旦我需要一个图表中组件,可以显示插线为我的一个项目。 我不需要一个先进的功能齐全的图表,我只是需要一个简单的一个基本功能。 不找到一种方法来做到这一标准的德尔菲TChart分,我决定写我自己。

    目前它有三个曲线图方式:线、光滑的线路与B样条和酒吧。 它有multilined题,传奇,自动y-轴线,并支持多个系列。 它也可以产生一个黑白的版本图使用单色刷。 这些功能能够满足我的编程的需要。

    我学到了很多,从创建这个组成部分。 我学会了算法来挑选轴的数值范围内,对,零从任意设置的价值观。 我也学到了一些线性插值algoritms,虽然目前只B样条,为满足本组成部分。 最后,我理解为什么只有少数几个图表组成。

    有一些主要方法的组件:

    程序"BeginUpdate";

    ■叫这个方法,以控制防止更新其内容。 这是有用的,当你需要添加庞大的数据图表。 不要忘了打电话给EndUpdate当你完成提供的数据。

    程序EndUpdate;

    ■叫这个方法重新启用更新。 你必须叫"BeginUpdate"之前叫这个方法。

    功能AddSeries(AKind:TSeriesKind):TNiceSeries;

    ■添加一个新的系列图表。 一系列可以一栏、行或顺利线型的。

    功能ClientToChart(const X、Y:整数;var斧子,哎:双):布尔;

    ■这个叫功能,以获得X轴和Y轴值从鼠的位置。 X和Y的参数是老鼠的位置,并相应X轴和Y轴值是存在的斧头和AY变量。 这一功能将返回真的,如果所提供的鼠的位置是在X轴和Y轴范围。 否则,返回错误的。

    程序RemoveSeries(一系列:TNiceSeries);

    ■消除一系列从图表。

    程序确定;

    ■将删除所有的一系列从图表。

    功能CreateMetafile:TMetafile;

    ■创建文件(维基媒体基金会)从图表。 这一功能是有用的,当你想要保存的内容的图表以文件。

    程序CopyToClipboard;

    ■副本的内容的图表的剪贴板。 内容可以粘贴的任何应用程序作为一个平面形象。

  • एक बार जब मैं की जरूरत है एक चार्ट घटक कर सकते हैं कि पता चलता है interpolated लाइनों में से एक के लिए मेरी परियोजना है । मैं नहीं की जरूरत है एक परिष्कृत पूर्ण विशेषताओं चार्ट, मैं बस जरूरत है एक साधारण से एक के साथ बुनियादी functionalities. पता नहीं एक तरीका यह करने के लिए मानक के साथ डेल्फी TChart घटक, मैं लिखने का फैसला किया ।

    वर्तमान में यह तीन ग्राफ शैलियों: लाइनों, चिकनी लाइनों के साथ बी Splines, और सलाखों के । यह multilined शीर्षक, कथा, स्वत: y-अक्ष है, और समर्थन करता है एकाधिक श्रृंखला है । यह भी उत्पादन कर सकते हैं एक मोनोक्रोम संस्करण के ग्राफ का उपयोग कर एक रंग का ब्रश. उन सुविधाओं के लिए पर्याप्त हैं मेरे प्रोग्रामिंग की जरूरत है.

    मैं एक बहुत कुछ सीखा बनाने से इस घटक है । मैंने सीखा एल्गोरिथ्म लेने के लिए अक्ष मूल्य सीमा है कि गठबंधन कर रहे हैं करने के लिए शून्य से एक मनमाने ढंग से सेट मूल्यों की है । मैं भी सीखा है कुछ रैखिक प्रक्षेप algoritms, हालांकि वर्तमान में केवल बी splines है कि समायोजित में इस घटक है । और अंत में मुझे समझ में क्यों वहाँ केवल एक मुट्ठी भर चार्ट घटक वहाँ से बाहर है ।

    वहाँ रहे हैं कुछ मुख्य तरीकों के घटक:

    प्रक्रिया BeginUpdate;

    ■ इस विधि कॉल को रोकने के लिए नियंत्रण अद्यतन इसकी सामग्री है । यह उपयोगी है जब आप चाहते हैं जोड़ने के लिए भारी डेटा के लिए चार्ट. भूल नहीं करने के लिए कॉल EndUpdate जब आप कर रहे हैं की आपूर्ति डेटा.

    प्रक्रिया EndUpdate;

    ■ कॉल करने के लिए इस विधि reenable अद्यतन. आप कॉल करना होगा BeginUpdate से पहले कॉल करने के लिए इस विधि.

    समारोह AddSeries(AKind: TSeriesKind): TNiceSeries;

    ■ जोड़ें एक नई श्रृंखला के लिए चार्ट. एक श्रृंखला किया जा सकता है एक बार, लाइन या चिकनी लाइन प्रकार है ।

    समारोह ClientToChart(const X, Y: पूर्णांक; वार AX, AY:): बूलियन;

    ■ इस समारोह में कॉल प्राप्त करने के लिए X-अक्ष और Y-अक्ष मान से माउस की स्थिति । एक्स और वाई मापदंडों कर रहे हैं, माउस की स्थिति, और इसी X-अक्ष और Y-अक्ष के मूल्यों में जमा हो जाती है कुल्हाड़ी और AY चर. इस समारोह में सच रिटर्न अगर आपूर्ति माउस की स्थिति के भीतर है X-अक्ष और Y-अक्ष श्रृंखला है । अन्यथा, यह गलत देता है ।

    प्रक्रिया RemoveSeries(ASeries: TNiceSeries);

    ■ को हटा एक श्रृंखला से चार्ट.

    प्रक्रिया स्पष्ट;

    ■ सभी को हटा श्रृंखला से चार्ट.

    समारोह CreateMetafile: TMetafile;

    ■ बनाता है मेटाफ़ाइल (WMF) से चार्ट. इस समारोह में उपयोगी है जब आप चाहते हैं सामग्री को बचाने के लिए चार्ट के एक फाइल करने के लिए.

    प्रक्रिया CopyToClipboard;

    ■ प्रतियों की सामग्री, चार्ट और क्लिपबोर्ड करने के लिए. सामग्री चिपकाया जा सकता है में किसी भी आवेदन के रूप में एक ग्राफिक छवि है.

  • Once I need a chart component that can shows interpolated lines for one of my project. I don't need a sophisticated full-featured chart, I just need a simple one with basic functionalities. Don't find a way to do it with standard Delphi TChart component, I decided to write my own.

    Currently it has three graph styles: lines, smooth lines with B-Splines, and bars. It has multilined title, legend, automatic y-axis, and supports multiple series. It also can produce a monochrome version of the graph using monochromatic brushes. Those features are sufficient for my programming needs.

    I learned a lot from creating this component. I learned the algorithm to pick axis value range that are aligned to zero from an arbitrary set of values. I also learned some linear interpolation algoritms, although currently only B-splines that is accomodated in this component. And finally I understand why there's only a handful chart component out there.

    There are some main methods of the component:

    procedure BeginUpdate;

    ■ Call this method to prevent control updating its content. This is useful when you want to add bulky data to the chart. Don't forget to call EndUpdate when you are done supplying data.

    procedure EndUpdate;

    ■ Call this method to reenable update. You must call BeginUpdate prior to call this method.

    function AddSeries(AKind: TSeriesKind): TNiceSeries;

    ■ Add a new series to the chart. A series can be a bar, line or smooth line type.

    function ClientToChart(const X, Y: Integer; var AX, AY: Double): Boolean;

    ■ Call this function to get X-axis and Y-axis value from mouse position. The X and Y parameters are the mouse position, and the corresponding X-axis and Y-axis values are stored in AX and AY variables. This function returns True if the supplied mouse position is within the X-axis and Y-axis range. Otherwise, it returns False.

    procedure RemoveSeries(ASeries: TNiceSeries);

    ■ Removes a series from the chart.

    procedure Clear;

    ■ Removes all series from the chart.

    function CreateMetafile: TMetafile;

    ■ Creates metafile (WMF) from the chart. This function is useful when you want to save the content of the chart to a file.

    procedure CopyToClipboard;

    ■ Copies the content of the chart to the clipboard. The content can be pasted in any application as a graphic image.