■TPrinterを使った印刷

■メタファイルの使い方

■Queryの利用(IB&FB)

■TeeChart

■TExcelApplication

TeeChartの使い方
TeeChartって目茶難しいですよね。
項目多すぎ。ヘルプわからなすぎ。
長年現実逃避してきましたが、まじめに勉強します。
この項目は、Delphi7にバンドルされているバージョンです。
タイトルの変更
一番簡単なタイトルやフッターの変更です。
var
crtTest:TChart;
begin
//グラフタイトルの名称
crtTest.Title.Text.Clear;
crtTest.Title.Text.Add('●月度個人別成績表');
//フッターの文字列
crtTest.Foot.Text.Clear;
crtTest.Foot.Text.Add('月末に向けて、追い込みかけましょう!');
//フォントや塗りは省略
背景

コンポーネント全体のビジュアルに対する背景と表の中の背景があります。



パネル
項目名 プロパティ名 意味
内側ベベル BevelInner 枠線の内側の凹凸
(内側ベベルの)幅 BorderWidth 内側ベベルのピクセルサイズ
外側ベベル BevelOuter 枠線の外側の凹凸
(外側ベベルの)幅 BevelWidth 外側ベベルのピクセルサイズ
背景イメージ BackImage 背景に画像を貼り付ける
  BackImageMode 背景の画像の配置方法
パネル色 Color パネル全体の基本色
枠線 BorderStyle 境界線に凹線を引く
グラデーション Gradient 背景をグラデーションにする
(グラデーションの)表示 Visible 表示・非表示
(グラデーションの)方向 Direction グラデーションの方向
(グラデーションの)開始色 StartColor グラデーションの開始色
(グラデーションの)終了色 EndColor グラデーションの終了色

 



項目名 プロパティ名 意味
壁の表示 View3DWalls グラフボックス内の色づけ表示・非表示
左壁 LeftWall 3Dにしたときにグラフボックスの左壁の色
(左壁)の透明 Visible 表示・非表示
BottomWall 3Dにしたときにグラフボックスの底辺の色
(床の)透明 Visible 表示・非表示
背景 BackColor 2D&3D時のグラフボックスの背景
(背景の)透明 Visible 表示・非表示
※FontとかBrushとかわかりやすいのは省略します。

 

//コンポーネント全体に対する背景
//グラデーション仕様です。

//方向はDirectionで設定します。
crtTest.Gradient.StartColor := clBlue;
crtTest.Gradient.EndColor := clAqua;
crtTest.Gradient.Visible := True;
//もしくは画像背景
crtTest.BackImage := 'c:\~\JPEG.jpg';

//グラフ内の背景色
crtTest.BackColor := clWhite;

軸と目盛のこと(Axis)

軸の目盛の設定は、Axisを使います。Axisは上下左右にそれぞれプロパティ群があるので、「TopAxis」「BottomAxis」「LeftAxis」「RightAxis」のいずれかを設定します。
普通は、左と下に目盛がつくのが普通なので、「LeftAxis」と「BottomAxis」がメインでしょう。



軸 LeftAxis,TopAxis,RightAxis,BottomAxis共通
項目名 プロパティ名 意味
軸の表示 AxisVisible 四方の軸の一括表示・非表示
(各軸に対して)表示 .Visible 各方向の表示・非表示
スケール    
最大/最小値の自動調整 Automatic 目盛の表示幅を自動分配
  AutomaticMaximum 目盛最大部分の自動処理
  AutomaticMinimum 目盛最小部分の自動処理
最大値 Maximum 目盛最大値
最小値 Minimum 目盛最小値
対数軸 Logarithmic 桁ごと目盛表示にします。
反転 Inverted 表示方向を反転させます。
タイトル    
タイトル Title.Text 目盛のタイトルを表示します。
(タイトルの)回転 Angle 文字の回転表示(縦書きにするなら270°)
ラベル    
(ラベルの)表示 Labels 目盛数値の表示・非表示
(ラベルの)軸ラベル LabelsOnAxis 対軸の境界線部分の目盛表示・非表示
(ラベルの)始点で揃える RoundFirstLabel  
目盛    
(目盛の)軸枠 Axis 目盛の基軸の詳細
(目盛の)主目盛 Ticks 主目盛の詳細
(目盛・主目盛の)長さ TickLength 目盛の長さ
(目盛の)ラベルのみ TickOnLabelsOnly よくわからん
(目盛の)内側 TicksInner 軸枠からグラフ側に伸ばす目盛
(目盛・目盛の)長さ TickInnerLength 軸枠からグラフ側に伸ばす目盛の長さ
(目盛の)グリッド Grid グラフ内の主目盛用グリッドの詳細
(目盛の)中央に置く GridCentered よくわからん
副目盛    
(副目盛の)副目盛 MinorTicks 小さい目盛の詳細
(副目盛の)副グリッド MinorGrid グラフ内の副目盛用グリッドの詳細
位置    
(位置の)位置 PositionPercent グラフの境界線からの距離%
(位置の)始点 StartPosition グラフボックス内の上からの開始地点
(位置の)終点 EndPosition グラフボックス内の下の終点

 

//目盛四方に対する表示・非表示(コンソール「チャート」→「軸」→「軸の表示」)
crtTest.AxisVisivle := True;
//縦軸の右目盛(コンソール「チャート」→「軸」→「表示」)
//目盛の表示・非表示
crtTest.LeftAxis.Visible := True;
//目盛のタイトル(コンソール「チャート」→「軸」→「タイトル」)

crtTest.LeftAxis.Title.Caption := '売上金額';
crtTest.LeftAxis.Title.Angle := 270;
crtTest.LeftAxis.Title.Font.Name := '@MS ゴシック';//縦書きにするときは@半角アットマークを頭に入れる。
//


凡例のこと(Legend)

凡例は、入力値の集計一覧表みたいなもんです。
デフォルトで、グラフ右上に表示されています。



凡例
項目名 プロパティ名 意味
凡例 Legend  
表示 .Visible 表示・非表示
背景色 .Color 凡例矩形の背景色
フォント .Font 凡例の書体
.Frame 凡例の枠の色
凡例の種類 .LegendStyle 凡例に表示する種類
凡例の内容 .TextStyle 凡例に表示する内容
位置合わせ .ResizeChart 表示サイズオーバーを修正
順序反転 .Inveted 集計一覧の表示順を反転
上端の位置 .TopPos コンポーネント上端からのピクセル距離
色の幅 .ColorWidth 集計一覧の色ヘッダーの表示幅
位置 .Alignment 凡例のグラフに対する位置関係
(位置の)余白 .HolizMargin 凡例とグラフの間の余白
分割線 .DividingLines 一覧のそれぞれを罫線で分割
(影の)色 .ShadowColor 凡例枠の背後の影色
(影の)サイズ .ShadowSize 凡例枠の背後の影サイズ

 

//凡例の表示
crtTest.Legend.Visible := True;
3Dのこと(View3DOptions)

グラフを3Dで表現できます。

3D
項目名 プロパティ名 意味
3次元 View3D 3D化適用・解除
効果 Chart3DPercent  
3D View3DOptions  
直交 .Orthogonal 軸の回転などの適用フラグ
ズーム .Zoom 表示縮尺
回転 .Rotation 「直交」を外したら回転が可能になる
仰角 .Elevation 頭上奥行きの角度
文字の拡大 .ZoomText  
水平オフセット .HolizOffset グラフの位置を横移動
垂直オフセット .VertOffset グラフの位置を縦移動
立体 .Perspective 横一文字を軸に回転

 

系列について(棒グラフ編)
グラフのカテゴリー毎(例えば個人別売上表と個人別粗利益表)という二つのグラフを表示させたりできます。



形式
項目名 プロパティ名 意味
スタイル BarStyle  
BarPen  
パターン BarBrush  
色を分ける ColorEachPoint 系列で色を統一するか、色の自動分配
複合 Multibar 複数の系列の並べ方を指定
始点をずらす UseYOrigin  
棒の幅 BarWidthPercent  
棒の位置 OffsetPercent  
立体部分を暗くする Dark3D  
棒の脇に余白をとる SideMargins  
マーカ位置の自動調整 AutoMarkPosition  





一般
項目名 プロパティ名 意味
(一般の)凡例を表示する ShowInLegend  
(一般の)カーソル Cursor  
(書式の)値 ValueFormat  
(書式の)百分率 PercentFormat  
水平軸 HorizAxis  
日付書式 XValues.DateTime  
垂直軸 VertAxis  
日付書式 YValues.DateTime  




マーカ
項目名 プロパティ名 意味
表示 Marks.Visible マーカーの表示・非表示
(形式の)背景色 Marks.BackColor  
(形式の)透明 Marks.Transparent  
(形式の)フォント Marks.Font  
(形式の)枠 Marks.Frame  
(形式の)クリッピング Marks.Clip  
(引き出し線の)色 Marks.Arrow.Color  
(引き出し線の)長さ Marks.ArrowLength  
スタイル Marks.Style グラフ上に乗せる文字の内容




データ
項目名 プロパティ名 意味
     

サンプルプログラム(棒グラフ編)
下図の図面をコーディングで表示します。


procedure TForm1.ButtonClick(Sender: TObject);
begin
crtTest.Title.Visible := True;
crtTest.Title.Text.Clear;
crtTest.Title.Text.Add('●月度個人別成績表');
crtTest.Foot.Visible := True;
crtTest.Foot.Text.Clear;
crtTest.Foot.Text.Add('来月に向けて追い込みをかけましょう!');
//背景の準備
crtTest.BackColor := clWhite;
crtTest.LeftAxis.Visible := True;
//軸の準備
crtTest.AxisVisible := True;
crtTest.LeftAxis.Visible := True;
crtTest.LeftAxis.Title.Caption := '売上金額';
//凡例の準備
crtTest.Legend.Visible := True;
//内容の入力
crtTest.Series[0].Clear;
crtTest.Series[0].Add(1500000,'佐藤',clTeeColor);
crtTest.Series[0].Add(1100000,'中野',clTeeColor);
crtTest.Series[0].Add(2500000,'岡田',clTeeColor);
crtTest.Series[0].Add(1800000,'後藤',clTeeColor);
crtTest.Series[0].Add(2900000,'山下',clTeeColor);
crtTest.Series[1].Clear;
crtTest.Series[1].Add(400000,'佐藤',clTeeColor);
crtTest.Series[1].Add(400000,'中野',clTeeColor);
crtTest.Series[1].Add(1500000,'岡田',clTeeColor);
crtTest.Series[1].Add(1000000,'後藤',clTeeColor);
crtTest.Series[1].Add(1900000,'山下',clTeeColor);
//個別表示微調整
//マーカーの有無

crtTest.Series[0].Marks.Visible := True;
crtTest.Series[1].Marks.Visible := False;
//色分け設定
crtTest.Series[0].Marks.Style := smsLabel;
crtTest.Series[1].Marks.Style := smsLabel;
crtTest.Series[0].ColorEachPoint := False;
crtTest.Series[1].ColorEachPoint := False;
crtTest.Series[0].SeriesColor := clNavy;
crtTest.Series[1].SeriesColor := clLime;

end;

描画

キャンバスに描画するメソッドも必要ですね。

ビットマップ描画
TPrinterなどのビットマップキャンバスに描画します。
Draw(TCanvas,TRect);

メタファイル描画
メタファイルキャンバスを用意して書き込みます。
DrawToMetaCanvas(TCanvas,TRect);

 

解析するのめっちゃしんどかったです。
特に系列のヘルプが充実していないのと、コード支援機能が働かないこと。
まだ、意味のわからないプロパティがあるので、 もう少し理解できたら詳しく更新します。


Copyright 2011 studio-take All Rights Reserved.