>>以序号为横坐标,平均制为纵坐标,画出图表
>>能否将几个SERIES合为一起呢?
可以的:在DBChart上放三个Series,在DBChart的可视化编辑窗口中将其中两个的DataSource设为DataSet,
指定X为序号字段,指定Y分别为X1和X2,把这两个的Active置为False;把第三个Series的
DataSource设为Function,Average,把那两个加进来就行了
>>但要在图表中画出几条平行线,用于标记是否超出警戒范围,还要在线的旁边加上注释,并且需要动态生成
在DBChart的OnAfterDraw里(以一条警戒线为例):
procedure TForm1.DBChart1AfterDraw(Sender: TObject);
const
Danger:do
uble = 10.5;//警戒水位
DColor: TColor = clRed;//平行线的颜色
DInfo: String = '警戒线';//注释信息
var
X1, X2, Y: Longint;
R: TRect;
begin
with Series1do
begin
//Series1为一TLineSeries
X1 := CalcXPosValue(0);
X2 := CalcXPosValue(MaxXValue);
Y := CalcYPosValue(Danger);
end;
with DBChart1.Canvasdo
begin
Pen.Color := DColor;
MoveTo(X1, Y);
LineTo(X2, Y);
Pen.Color := clInfoText;
Brush.Color := clInfoBk;
R := Rect((X1 + X2) div 2, Y - TextHeight(DInfo), (X1 + X2) div 2
+ TextWidth(DInfo) + 4, Y + 4);//显示注释的矩形框,具体大小和位置根据实际情况确定
FillRect(R);
TextOut(R.Left + 2, R.Top + 2, DInfo);
end;
end;
比例缩放用DBChart1.View3DOptions.Zoom控制。打印用DBChart.Print。
>>并且不列入图表的生成数据中
什么意思?