用Tchart画曲线,想让曲线能动态地显示最新的一段曲线,之前的曲线向左移出。看delphi自带的demo,看不懂

这是自带的demo->Teechart->teebasic的例子,看不懂这一段,能否讲解一二FunctionTDemoform.TheChart:TChart;begin... 这是自带的demo->Teechart->teebasic的例子,看不懂这一段,能否讲解一二
Function TDemoform.TheChart:TChart;
begin
with NoteBook1 do
result:=(Pages.Objects[PageIndex] as TPage).Controls[0] as TChart;
end;
procedure TDemoForm.Timer1Timer(Sender: TObject);
var t:Longint;
tmpX:Double;
begin
With NoteBook1 do
Case PageIndex of
0,3,4,6: With TheChart do
begin
for t:=0 to SeriesCount-1 do
With Series[t] do
begin
tmpX:=XValues[1]-XValues[0];
Delete(0);
AddXY( XValues.Last+tmpX,
YValues.Last+Random(100)-50,'',clTeeColor);
end;
end;
1,2,8: With TheChart do
begin
if (tmpTimes=-1) then
begin
tmpSeries:=Random(SeriesCount);
tmpIndex :=Random(Series[tmpSeries].Count);
tmpTimes :=Random(10);
tmpRandom:=2*Round(Random(50)-25.0);
end;
if tmpSeries<>-1 then
begin
if PageIndex=8 then
With (Series[tmpSeries] as TBubbleSeries) do
begin
tmpX:=RadiusValues[tmpIndex]+tmpRandom;
if tmpX>=2 then
begin
RadiusValues[tmpIndex]:=tmpX;
if tmpRandom>0 then tmpX:=XValues[tmpIndex]+1
else tmpX:=XValues[tmpIndex]-1;
XValues[tmpIndex]:=tmpX;
if Random(10)<5 then tmpX:=YValues[tmpIndex]+50
else tmpX:=YValues[tmpIndex]-50;
YValues[tmpIndex]:=tmpX;
end
else tmpTimes:=0;
end
else
With Series[tmpSeries].MandatoryValueList do
Value[tmpIndex]:=Value[tmpIndex]+tmpRandom;
Dec(tmpTimes);
Repaint;
end;
end;
5: (TheChart[0] as TPieSeries).Rotate(358);
end;
end;
展开
 我来答
yasigi
推荐于2017-09-30 · TA获得超过208个赞
知道小有建树答主
回答量:262
采纳率:100%
帮助的人:219万
展开全部

这个是所有Chart的刷新,你只要看 page0,也就是底下这段。

原理是先删掉曲线第一笔的资料,再从後面插一笔新的,所以X轴数值要一直递增,

如果你要让X轴参数固定,可能先排在阵列里处理过,再餵到series 会比较好作。

  Case PageIndex of
     0,3,4,6:  
         With TheChart do
         begin
            for t:=0 to SeriesCount-1 do
            With Series[t] do         //指定绘制的曲线
            begin
               tmpX:=XValues[1]-XValues[0];  //取得X轴数值间隔
               Delete(0);                    //删除曲线的第一笔数据
               AddXY(                        //插入新的数据,会自动放在最後
                     XValues.Last+tmpX,     //设定X轴数值 
                     YValues.Last+Random(100)-50, //设定Y轴数值
                     '',                          //Label 
                     clTeeColor);                 //曲线颜色  
            end;
        end;
     ...
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式