关于图表的问题,多条曲线如何在一个图表中显示,各位大哥指点迷津,在线等待 我想在一个图表中显示多条曲线一用来比较,他们的横坐标是一样的,请问如何做啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用TCHart,多加几个Series不就行了吗 给你一段程序,是动态创建LineSeries和Query的。通过SQL语句控制Query中的数据,将其付给LineSeries生成曲线,在一张Chart中显示出来。procedure TecqxForm.ToolButton3Click(Sender: TObject);var Str, Id, lName : string; lNum, lMark : integer; lLineNum : Array of integer; MyChart: Array of TLineSeries; MyQuery: Array of TQuery;begin Str := ''; Id := ''; lName := ''; {----------------------------------------------------------------------------- Str 表示需要写入动态Query组件的SQL语句 Id表示所选择站点的站点号 lName 表示所选择站点的站点名 lNum表示所选站点拥有的曲线总数 lMark 表示按顺序排列的各条曲线的序列 ------------------------------------------------------------------------------} if Table2.Locate('surveypointname',TreeView1.Selected.Parent.Text,[]) then begin Id := Table2.fieldbyname('surveypointno').asstring; lName := Table2.FieldByName('SurveyPointName').AsString; lNum := TreeView1.Selected.Parent.Count; if lNum > 0 then begin SetLength(lLineNum, lNum+1); SetLength(MyChart, lNum+1); SetLength(MyQuery, lNum+1); end; lMark := 0; while lMark < lNum do begin lLineNum[lMark] := StrToInt(TreeView1.Selected.Parent.Item[lMark].Text); Str := 'select bb.surveypointname 站点名,aa.surveypointno 站点号,aa.waterlevel 水位,aa.flow 流量 ' +',aa.numbers 曲线数 from waterflowtable aa,surveypoints bb where aa.surveypointno='+ ''''+id+''''+' and aa.surveypointno=bb.surveypointno and numbers='+IntToStr(lLineNum[lMark]); //ShowMessage(Str); try MyChart[lMark] := TLineSeries.Create(Nil); MyChart[lMark].ParentChart := DBChart2; MyQuery[lMark] := TQuery.Create(Nil); MyQuery[lMark].DatabaseName := DataBase1.DatabaseName; MyQuery[lMark].Close; MyQuery[lMark].SQL.Clear; MyQuery[lMark].SQL.Add(Str); MyQuery[lMark].Open; MyChart[lMark].DataSource := MyQuery[lMark]; MyChart[lMark].XLabelsSource := '流量'; MyChart[lMark].XValues.ValueSource := '流量'; MyChart[lMark].YValues.ValueSource := '水位'; MyChart[lMark].CheckDataSource; MyChart[lMark].LinePen.Width := 2; MyChart[lMark].Title := lName +' '+ IntToStr(lLineNum[lMark]); MyChart[lMark].Active := true; MyChart[lMark].RefreshSeries; except ShowMessage('Error!'); Exit; end; Str := ''; Inc(lMark,1); end; end; {---------------------------------------------------------------------------- 由于当树状结构所选节点改变时,其仍然运行。即当选择其中一个站点时,当点击两次此 按钮,发生事件时,当会执行两遍上述过程,每一条曲线绘画两次。因此下句代码不可省略 -----------------------------------------------------------------------------} ToolButton3.Enabled := False;end; delphi如何根据数据库绘制平滑曲线 内存泄漏的主要原因 菜不菜都进来帮帮忙? Canvas的问题? 请问如何生成一个无标题的不可移动的对话框? 问题代码,帮我看看吧,谢谢了。 关于form间的变量传递问题请给予帮助 主从数据结构 寻找一个想从事网络游戏行业delphi程序员朋友 为何拦截不到消息(50分) 做过OA的兄弟或想了解OA的兄弟,路过请留下QQ号令..... 超简单数据库问题
给你一段程序,是动态创建LineSeries和Query的。通过SQL语句控制Query中的数据,将其付给LineSeries生成曲线,在一张Chart中显示出来。procedure TecqxForm.ToolButton3Click(Sender: TObject);
var
Str, Id, lName : string;
lNum, lMark : integer;
lLineNum : Array of integer;
MyChart: Array of TLineSeries;
MyQuery: Array of TQuery;
begin
Str := ''; Id := ''; lName := '';
{-----------------------------------------------------------------------------
Str 表示需要写入动态Query组件的SQL语句 Id表示所选择站点的站点号
lName 表示所选择站点的站点名 lNum表示所选站点拥有的曲线总数
lMark 表示按顺序排列的各条曲线的序列
------------------------------------------------------------------------------}
if Table2.Locate('surveypointname',TreeView1.Selected.Parent.Text,[]) then
begin
Id := Table2.fieldbyname('surveypointno').asstring;
lName := Table2.FieldByName('SurveyPointName').AsString;
lNum := TreeView1.Selected.Parent.Count;
if lNum > 0 then
begin
SetLength(lLineNum, lNum+1);
SetLength(MyChart, lNum+1);
SetLength(MyQuery, lNum+1);
end; lMark := 0;
while lMark < lNum do
begin
lLineNum[lMark] := StrToInt(TreeView1.Selected.Parent.Item[lMark].Text); Str := 'select bb.surveypointname 站点名,aa.surveypointno 站点号,aa.waterlevel 水位,aa.flow 流量 '
+',aa.numbers 曲线数 from waterflowtable aa,surveypoints bb where aa.surveypointno='+
''''+id+''''+' and aa.surveypointno=bb.surveypointno and numbers='+IntToStr(lLineNum[lMark]);
//ShowMessage(Str); try
MyChart[lMark] := TLineSeries.Create(Nil);
MyChart[lMark].ParentChart := DBChart2;
MyQuery[lMark] := TQuery.Create(Nil);
MyQuery[lMark].DatabaseName := DataBase1.DatabaseName; MyQuery[lMark].Close;
MyQuery[lMark].SQL.Clear;
MyQuery[lMark].SQL.Add(Str);
MyQuery[lMark].Open; MyChart[lMark].DataSource := MyQuery[lMark];
MyChart[lMark].XLabelsSource := '流量';
MyChart[lMark].XValues.ValueSource := '流量';
MyChart[lMark].YValues.ValueSource := '水位';
MyChart[lMark].CheckDataSource;
MyChart[lMark].LinePen.Width := 2;
MyChart[lMark].Title := lName +' '+ IntToStr(lLineNum[lMark]);
MyChart[lMark].Active := true;
MyChart[lMark].RefreshSeries;
except
ShowMessage('Error!');
Exit;
end;
Str := '';
Inc(lMark,1);
end;
end;
{----------------------------------------------------------------------------
由于当树状结构所选节点改变时,其仍然运行。即当选择其中一个站点时,当点击两次此
按钮,发生事件时,当会执行两遍上述过程,每一条曲线绘画两次。因此下句代码不可省略
-----------------------------------------------------------------------------}
ToolButton3.Enabled := False;
end;