要设置他的最小值,最大值 例如: procedure Refresh(ATable: TTable; ADBChart: TDBChart; iNum: Integer); var i, iMin, iMax, iRange: Integer; begin with ATable do if Active then begin Refresh; if ShowChartItem.Checked then begin if Bof then First; while not Eof do begin with ADBChart do for i := 0 to SeriesCount - 1 do with Series[i] do AddXY(FieldByName(XValues.ValueSource).AsFloat, FieldByName(YValues.ValueSource).AsFloat, '', clTeeColor); Next; end; iRange := ChartConfig.iHDot * ChartConfig.iHInterval; iMax := FieldByName(fdExpSecond).AsInteger; //Value; iMin := iMax - iRange; if iMin < 0 then begin iMin := 0; iMax := iRange; end; ChartScrollBar.Max := iMin; ChartScrollBar.Position := iMin; ADBChart.Title.Text.Text := FormatChartTytle(iNum, iMin); ADBChart.BottomAxis.SetMinMax(iMin, iMax); //ADBChart.Repaint; //ADBChart.RefreshData; end else Last; end; end;
例如:
procedure Refresh(ATable: TTable; ADBChart: TDBChart; iNum: Integer);
var
i, iMin, iMax, iRange: Integer;
begin
with ATable do
if Active then
begin
Refresh;
if ShowChartItem.Checked then
begin
if Bof then First;
while not Eof do
begin
with ADBChart do
for i := 0 to SeriesCount - 1 do
with Series[i] do
AddXY(FieldByName(XValues.ValueSource).AsFloat,
FieldByName(YValues.ValueSource).AsFloat, '', clTeeColor);
Next;
end; iRange := ChartConfig.iHDot * ChartConfig.iHInterval;
iMax := FieldByName(fdExpSecond).AsInteger; //Value;
iMin := iMax - iRange;
if iMin < 0 then
begin
iMin := 0;
iMax := iRange;
end;
ChartScrollBar.Max := iMin;
ChartScrollBar.Position := iMin;
ADBChart.Title.Text.Text := FormatChartTytle(iNum, iMin);
ADBChart.BottomAxis.SetMinMax(iMin, iMax);
//ADBChart.Repaint;
//ADBChart.RefreshData;
end
else Last;
end;
end;