グラフを描く
見栄えのいいグラフをプログラムで作るのは結構大変な作業です。Delphiでは、様々なグラフコンポーネントが使えるのでわりあい簡単にグラフを作れます。また、グラフコンポーネントでなくOLEを使ってExcelのグラフをフォームに埋め込むなどもできます。
ここでは2次関数(放物線)をTChartを使って、グラフに描いてみます。プログラムでプロパティを変更することもできますが、プロパティエディタで変更しておいたほうが簡単なのでプロパティエディタで初期設定を行います。プロパティエディタは、フォームにChartを貼り付けてダブルクリックすると表示されます。
この例では、系列を1つ追加してグラフ形式を折れ線にしています。デフォルトだと3Dグラフになるので、3Dチェックボックスをオフにして2Dにしています。また、タイトルがデフォルトではTChartとなるので図のように変更しました。また、凡例が右側に表示されるのをやめました。
グラフはFuncで定義される関数にしたがって描画されます。
ソース(青色部分が記述した部分です)
unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart; type TForm1 = class(TForm) Chart1: TChart; Series1: TFastLineSeries; procedure FormCreate(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.DFM} // ローカルな関数Funcで関数を定義している function Func(x: double): double; forward; { フォームが作成されたとき ======================== } procedure TForm1.FormCreate(Sender: TObject); var x, y: double; begin x := -5.0; // グラフを描く while x < 5.0 do begin y := Func(x); x := x + 0.1; Chart1.Series[0].XValues.AddChartValue(x); Chart1.Series[0].YValues.AddChartValue(y); end; end; { 関数 ==== } function Func(x: double): double; begin Result := x * x; end; end.