Delphi如何做曲线图

newyu1127 2009-03-19 02:28:20
用Delphi写了一个CPU监控的程序,得到了即时CPU的使用率,
但要用曲线表示出来,就像WINDOWS中的CPU使用率一样,也是放在托盘中的一个小方框,
只不过里面的内容用曲线来表示CPU使用率的变化。好象Delphi中有一个做曲线的控件TChart,
但不知道怎么用?请教一下,或者还有其他方法以及更好的控件,也请介绍,谢谢
...全文
584 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoujianqing 2009-03-20
  • 打赏
  • 举报
回复
读书的时候,学习过TChart,不过现在不记得怎么用 了
呵呵
wgzymzx 2009-03-20
  • 打赏
  • 举报
回复
在画布上直接画,你想要啥样的图形都可以
kye_jufei 2009-03-20
  • 打赏
  • 举报
回复
使用tchart控件,類似這樣

procedure TPRO_EFFPLATO_F.cxGrid1DBTableView1DblClick(Sender: TObject);
var
Pn:string;
iLoop:Integer;
begin
inherited;
Pn:=adoq_chart.FieldByName('PN').AsString;
cx_pn.Text:=pn;
adoq_chart.Close;
adoq_chart.SQL.Text:='select * from PRO_QUANTITY where Model='''+ VarToStr(cx_order.EditValue) +''' and PN='''+pn+'''';
adoq_chart.Open;
adoq_chart.First;
BarSeries1.Clear;
for iLoop:=0 to adoq_chart.RecordCount -1 do
begin
BarSeries1.Add(adoq_chart.FieldValues['NewHR'],VarToStr(adoq_chart.FieldValues['Dt']));
adoq_chart.Next;
end;
end;

procedure TPRO_EFFPLATO_F.cxGrid1DBTableView1FocusedRecordChanged(
Sender: TcxCustomGridTableView; APrevFocusedRecord,
AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
var
StrAccount:string;
i:Integer;
sl:TStrings;
begin
inherited;
if not Firstchecked then
begin
if AFocusedRecord<>nil then
begin
StrAccount:=VarToStr(AFocusedRecord.Values[5])+','+VarToStr(AFocusedRecord.Values[6]);
if AFocusedRecord.Values[0]=0 then
begin
AFocusedRecord.Values[0]:=1;
if ListBox1.Items.IndexOf(StrAccount)= -1 then
ListBox1.Items.Insert(0,StrAccount);
Chart1.Series[0].Clear;
for i:=0 to ListBox1.Items.Count -1 do
begin
if cx_order.ItemIndex<>0 then
sl:=TStringList.Create;
sl.Delimiter:=',';
sl.DelimitedText:=ListBox1.Items[i];
Chart1.Series[0].Add(trunc(StrToFloat(sl.Strings[1])),sl.Strings[0]);
end;
end
else
begin
AFocusedRecord.Values[0]:=0;
i:=ListBox1.Items.IndexOf(StrAccount);
ListBox1.Items.Delete(i);
Chart1.Series[0].Clear;
for i:=0 to ListBox1.Items.Count -1 do
begin
sl:=TStringList.Create;
sl.Delimiter:=',';
sl.DelimitedText:=ListBox1.Items[i];
Chart1.Series[0].Add(trunc(StrToFloat(sl.Strings[1])),sl.Strings[0]);
end;
end;
end;
end;
Firstchecked:=False;
end;
yygyyygt 2009-03-20
  • 打赏
  • 举报
回复
关注学习.
starluck 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 newyu1127 的帖子:]
用Delphi写了一个CPU监控的程序,得到了即时CPU的使用率,
但要用曲线表示出来,就像WINDOWS中的CPU使用率一样,也是放在托盘中的一个小方框,
只不过里面的内容用曲线来表示CPU使用率的变化。好象Delphi中有一个做曲线的控件TChart,
但不知道怎么用?请教一下,或者还有其他方法以及更好的控件,也请介绍,谢谢
[/Quote]

好像有一個DEMO的吧,自己看看,不難的。
byteh 2009-03-19
  • 打赏
  • 举报
回复
TChart很简单的,Delphi安装目录下Demos\TeeChart中有自带的实例

建议复制出来在调试编译学习!
zzn007 2009-03-19
  • 打赏
  • 举报
回复
还是尽量使用tchart控件,如果自己画要做处理,否则屏幕闪的会很厉害(如果重绘的间隔比较短的话)
bdmh 2009-03-19
  • 打赏
  • 举报
回复
TCHART可以,也可以在Canvas上画,实时把数据读到内存中,然后在Canvas上画出来
纯冰糖 2009-03-19
  • 打赏
  • 举报
回复
直接画也可以。
Canvas.Pen.Color := clRed;
Canvas.MoveTo(10, 10);
Canvas.LineTo( 222, 333 );

5,385

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧