1. delphi7 用tchart 繪制波形,數據太多顯示太密集如圖1 ,有什麼辦法能加個水平滾動條顯示,
DELPHI7安裝目錄下有個demos的目錄,里邊有個teechart的目錄,你打開teedemo.dpr,你會看到所有chart的範例,我就不講解了
2. teechart重畫,該怎麼處理
方法/步驟1
在網上下載TeeChart控制項並安裝,安裝自然不用多說,安裝完後找到安裝路徑(帶有TeeChart5.ocx文件),復制當前路徑
怎樣在VS2013/MFC中使用TeeChart繪圖控制項
2
安裝完後需要對控制項進行簡單的注冊,打開cmd,通過cd指令並粘貼原來復制好的路徑,轉到軟體安裝好的目錄;
接著輸入:regsvr32 TeeChart5.ocx,然後彈出對話框提示注冊成功
怎樣在VS2013/MFC中使用TeeChart繪圖控制項
3
注冊完畢,打開VS2013,新建一個MFC項目,在VC++欄中找到MFC項目,選擇好項目存放的目錄並填寫項目名稱
怎樣在VS2013/MFC中使用TeeChart繪圖控制項
4
接著是創建向導,只需修改選擇「基於對話框」模式,至於「最小化框」和「最大化框」隨各自情況選擇,其餘的默認點「下一步」即可
怎樣在VS2013/MFC中使用TeeChart繪圖控制項
怎樣在VS2013/MFC中使用TeeChart繪圖控制項
5
將默認生成的三個控制項按delete鍵刪除
怎樣在VS2013/MFC中使用TeeChart繪圖控制項
6
接下來導入TeeChart控制項,選擇「工具"-》"選擇工具箱項"-》"COM組件",找到"TeeChart Pro Active control v5"並選中它,點擊"確定"
怎樣在VS2013/MFC中使用TeeChart繪圖控制項
怎樣在VS2013/MFC中使用TeeChart繪圖控制項
3. delphi teechart 如何將不同數量級(Y軸)的多條曲線,都能明顯的在同一chart里顯示出來
要顯示合適的曲線,可以通過改變各曲線的Y值比例來實現:
設chart1的X、Y軸最大、最小值為XM、YM、XN、YN,各曲線的最大、最小值為XM[1]..XM[n]、YM[1]..YM[n]、XN[1]..XN[n]、YN[1]..YN[n]
將添加點的語句由
chart1.series[i].AddXY(X[i,j],Y[i,j]);
改為
chart1.series[i].AddXY(X[i,j]*(XM-XN)/(XM[i]-XN[i]),Y[i,j]*(YM-YN)/(YM[i]-YN[i]));
即可。
如果數據是直接從數據集(如table1)中獲得的如欄位X、Y,那麼要先在數據集中增加兩個計算欄位Xc、Yc(即類型為Calculated的NewField),並在table1的OnCalculate事件中加上
table1Xc.Value:=table1X.Value*(XM-XN)/(XM[1]-XN[1]);
table1Yc.Value:=table1Y.Value*(YM-YN)/(YM[1]-YN[1]);
chart1點的坐標改為Xc、Yc即可。
但這樣做的缺點是無法從chart1中直接讀出Y的真實值。
4. teechart控制項中 多個series可以組合嗎
1.注冊TeeChart5.ocx
先將TeeChart5.ocx文件拷貝到工程文件夾中。然後,打開命令提示符,cd進入TeeChart5.ocx所在路徑,輸入「regsvr32 TeeChart5.ocx」,注冊TeeChart5.ocx。注冊成功後,會有一個提示框。如果不想使用可以輸入命令「regsvr32 –u TeeChart5.ocx」解除注冊。
2.新建工程,將自帶的類放到一個文件夾中,例如「src」。因為添加TeeChart後會生成很多新的類,看起來不方便。
3.將TeeChart控制項加到Control List中
Project->Add To Project->Components and Controls->Registered ActiveX Control-> TeeChart Pro Activex control v5->insert
這時,在Control List的右下角多了一個圓形的小圖標,在類視圖中多出了許多的新類,將他們放在一個文件夾中,例如「teeChart」。
以下,將說明如何具體的使用TeeChart控制項 4.拖拽TeeChart到對話框中
拖拽TeeChart到對話框中,調整TeeChart的大小,稍作修改,界面設計就完成了。右擊控制項->屬性->teechart pro editer選項卡->edit chart。出現一個名為Edit的對話框。這個對話框非常重要,包括了teechart的各種屬性。 簡要介紹一下各屬性:
Series:該屬性包含需要繪制的圖表的類型,如曲線、餅圖、柱狀圖等等,種類很多。 Chart:該選項包含了圖表的顯示部分的很多屬性,如坐標軸、背景、標題等等。 Data:繪制圖表需要的數據。
Export:包含了一些將圖表導出為圖片格式的選項。 Print:列印設置。
Themes:圖表的主題,主要是顯示方式。
5.建立變數
使用類向導建立teechart的對象:CTChart m_chart; 在xxxDlg.cpp文件中添加以下頭文件: #include "axis.h"
#include "axes.h"
#include "scroll.h"
#include "series.h"
//#include "tchart.h"
#include "series.h"
#include "valuelist.h"
#include "axes.h"
#include "axis.h"
#include "pen.h"
#include "axislabels.h"
#include "teefont.h"
#include "axistitle.h"
#include "aspect.h"
#include "titles.h"
#include "fastlineseries.h"
#include "panel.h"
#include "legend.h"
#include "tools.h"
#include "toollist.h"
#include "annotationtool.h"
#include "page.h"
5. MFC中teechart怎麼從文檔中讀取數據繪圖
在網上下載TeeChart控制項並安裝,安裝自然不用多說,安裝完後找到安裝路徑(帶有TeeChart5.ocx文件),復制當前路徑
2
安裝完後需要對控制項進行簡單的注冊,打開cmd,通過cd指令並粘貼原來復制好的路徑,轉到軟體安裝好的目錄;
接著輸入:regsvr32 TeeChart5.ocx,然後彈出對話框提示注冊成功
注冊完畢,打開VS2013,新建一個MFC項目,在VC++欄中找到MFC項目,選擇好項目存放的目錄並填寫項目名稱
接著是創建向導,只需修改選擇「基於對話框」模式,至於「最小化框」和「最大化框」隨各自情況選擇,其餘的默認點「下一步」即可
將默認生成的三個控制項按delete鍵刪除
接下來導入TeeChart控制項,選擇「工具"-》"選擇工具箱項"-》"COM組件",找到"TeeChart Pro Active control v5"並選中它,點擊"確定"
在工具箱中找到「TeeChart Pro Active control v5」控制項並拖放到對話框上,適當調整控制項大小
控制項已經導入了,接下來需要添加相關的「類」和「變數」,首先添加類。
在「類視圖」中右鍵項目名稱,選擇「添加」-》「類」;
然後選擇「MFC」項中的「TypeLib中的MFC類」,點「添加」。
在注冊表的可用類型庫中找到"TeeChart Pro Active control v5<1.0>",這里不需要一直下拉慢慢找,只要輸入"tee"就可以直接選中
在「介面」中選擇所需的類,Teechart控制項包含很多類,CTChart是必須的,對應的介面是「ITChart」,其他類包括CSeries、CAxis、CAxes、CTitles等等,這里僅以「CTChart」和「CSeries」為例,選擇「ISeries」、「ITChart」。
確定以後可以在類視圖中看到新添加的兩個類。
接下來需要對控制項關聯變數,對控制項右鍵選擇「添加變數」,選擇默認的控制項類型,屬於類「CTchart1」,對變數進行命名,這里命名為"m_chart",這樣類和變數就關聯好了。
項目中會多出一個tchart1.h文件和tchart1.cpp文件,在對話框類的頭文件CTestDlg.h中會有「CTchart1 m_chart;」的變數定義,但是CTestDlg.cpp文件中對話框類的構造函數會多出一句「, m_chart(0)」,需要把它刪除,否則會編譯出錯。這樣前期准備工作就完成了
6. teechart放大縮小
我是這樣做的,我在teechart控制項中加了一個Series 叫horizBar1然後把從資料庫中讀取出的dataset給horizBar1.DataSource!
7. MFC,要用teechart控制項顯示實時曲線圖,數據來串口,要如何實現
您好,MSChart顯示效率是個問題,尤其是實時採集顯示;
我之前做過一個溫度採集的MFC系統,
用的是雙緩沖技術。
還有就是串口通信網上應該很多,我沒有用過MSCOM控制項,
自己使用了一個串口類,
其他問題沒什麼了。
1.TeeChart是可以實時顯示的 估計是你的數據有問題。
2.滾動顯示需要你自己做個處理 把TeeChart的橫軸每次從新設置一下 把x軸坐標每次向前移動一個。
3.不是正弦 不是TeeChart的問題 檢查你的數據。
8. 在C#中如何使用teechart組件讀取並繪制datatable中的數據並繪圖
1.添加teechart到工具箱。
步驟 工具箱上點右鍵,添加選項卡->選擇項->選擇teechart.dll確定即可。可以同時添加language.dll
2. 新建一個aspx頁面,拖一個teechart到頁面中,設置屬性並添加個Button。代碼如下:
<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="TeeChart" Namespace="Steema.TeeChart.Web" TagPrefix="tchart" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<tchart:WebChart ID="WebChart1" runat="server" Width="800px"Height="600px" GetChartFile="GetChart.aspx" TempChart="Session"/>
<asp:Button ID="Button1" runat="server" Text="確定" onclick="Button1_Click" />
</div>
</form>
</body>
</html>
3.假如我們想畫一個折線圖,添加後台代碼如下:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Steema.TeeChart.Styles;//方便添加各種類型的曲線
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = GetData();//獲取數據
Line line = new Line();//teechart中的折線圖
foreach (DataRow dr in dt.Rows)//添加數據
{
line.Add(Convert.ToInt32(dr[0]), Convert.ToDouble(dr[1]));
}
WebChart1.Chart.Series.Add(line);//所有的曲線必須添加到 series中
WebChart1.Chart.Aspect.View3D = false;//2D圖片,否則是3D的
}
public DataTable GetData()//產生數據寫的稍微有些麻煩
{
DataTable dt = new DataTable();
DataColumn dc0 = new DataColumn("Year");
DataColumn dc1 = new DataColumn("Value");
dt.Columns.Add(dc0);
dt.Columns.Add(dc1);
Random r = new Random();
Hashtable hashtable = new Hashtable();
int RowNum = 10;
for (int i = 0; hashtable.Count < RowNum; i++)
{
int value = r.Next(1, 50);
if (!hashtable.Contains(value))
{
hashtable.Add(i, value);
}
}
ArrayList keys = new ArrayList();
foreach (int key in hashtable.Keys)
{
keys.Add(key);
}
for (int i = 2000; i < 2010; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i;
dr[1] = hashtable[keys[i-2000]];
dt.Rows.Add(dr);
}
return dt;
}
}
4.說明 teechart中有GetChartFile="GetChart.aspx" TempChart="Session" 這兩個屬性是必須設置。否則圖片將是一個X。
GetChart.aspx是個固定的頁面什麼原理沒有研究,貼出代碼如下
前台:<%@ Page language="c#" Inherits="WebForm.GetChart" CodeFile="GetChart.aspx.cs" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD html 4.0 Transitional//EN" >
<html>
<head runat="server">
<title>GetChart</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name=vs_defaultClientScript content="JavaScript">
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body>
<form method="post" runat="server">
</form>
</body>
</html>
後台:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
namespace WebForm
{
/// <summary>
/// Summary description for GetChart.
/// </summary>
public partial class GetChart : System.Web.UI.Page
{
protected void Page_Load(object sender, System.EventArgs e)
{
// *************************************************************
// Code to retrieve Session saved streamed Charts to a WebForm.
// This code should be included if the WebChart 'UseStreams' property is set to True.
// *************************************************************
string chartName=Request.QueryString["Chart"];
if (Session[chartName]!=null)
{
MemoryStream chartStream = new MemoryStream();
chartStream=((MemoryStream)Session[chartName]);
Response.OutputStream.Write(chartStream.ToArray(),0,(int)chartStream.Length);
chartStream.Close();
Session.Remove(chartName);
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}
#endregion
}
}
運行之後效果如下所示:
9. TeeChart應用技術詳解的目錄
前言
第1章TeeChart圖表工具快速入門
1.1TeeChart及功能簡介
1.1.1TeeChart簡介
1.1.2TeeChart基本特性
1.1.3TeeChaxt程序開發環境
1.2TeeChart的安裝
1.2.1刪除Delphi7自帶的TeeChart
1.2.2安裝TeeChartProv7FullSources
1.3TChart的組成
1.3.1TChart的組成元素
1.3.2圖表元素之間的關聯
1.3.3圖表組件的主要屬性
1.3.4圖表組件的方法
1.3.5圖表組件的事件
1.3.6圖表組件提供的工具與組件群
1.4TChart組件的應用舉例
1.4.1創建圖表的一般步驟
1.4.2使用TeeChart向導創建圖表
1.4.3使用TeeChart向導創建資料庫圖表
第2章TeeChart的組件及應用實例
2.1TeeChart頁面上的組件概述
2.2TeeChart的組件應用實例
2.2.1圖表編輯器
2.2.2數據柵格與導航
2.2.3序列列表與命令工具
2.2.4三維畫板、工具與TeeOpenGL
2.2.5序列與函數庫組件
2.2.6圖表滾動棒與頁面導航組件
2.2.7對象觀察器與列印預覽
2.2.8多圖表列印預覽
2.2.9序列數據集組件SeriesDataset
2.2.10序列文本源組件SeriesTextSource
2.2.11交叉源組件DBCrossTabSource
2.2.12XML數據源組件ChartWebSource
2.2.13Web數據源組件ChartWebSource
第3章圖表與序列的操作維護
3.1圖表軸的維護
3.1.1-軸的刻度設置
3.1.2時間軸與對數軸
3.1.3軸的反轉
3.1.4軸的風格與增量
3.1.5時間軸增量
3.1.6柵格線與軸標簽
3.1.7自定義軸繪制(CustomDraw)
3.1.8自定義軸(CustomAxes)
3.2序列的維護
3.2.1運行期間創建序列
3.2.2序列列表、計數與刪除
3.2.3運行時改變序列的z順序
3.2.4增加序列的點
3.2.5增加數組中的數據
3.2.6空值
3.2.7點的順序控制和限制
3.2.8點的刪除
3.2.9序列中點查找與修改
3.2.10序列中點的定位
3.2.11點值的統計運算
3.2.12點的顏色
3.2.13點的標簽
3.2.14運行期間序列類型的改變
3.3函數的操作
3.3.1增加函數
3.3.2刪除函數
3.3.3周期
3.4圖表的放大與滾動
3.4.1放大(Zoom)
3.4.2動畫放大(AnimateZoom)
3.4.3使用代碼進行放大(ZoomByCode)
3,4.4恢復顯示(UndoingZoom)
3.4.5放大事件(ZoomEvents)
3.4.6滾動(Scrolling)
3.5在圖表上自行繪制
3.5.1軸的值轉換到屏幕坐標
3.5.2序列的值轉換到屏幕坐標
3.5.3圖表畫布(ChartCanvas)
3.6點擊事件
3.6.1在圖表的序列上單擊(ChartOnClickSeries)
3.6.2在圖表上單擊(ChartOnClick)
3.6.3在序列上單擊和雙擊(SeriesOnClickandOnDblClick)
第4章TeeChart的序列與函數
4.1序列(Series)
4.1.1標准類(Standard)序列
4.1.2擴充類(Extended)序列
4.1.3財經類(Financial)序列
4.1.4統計類(Stats)序列
4.1.5三維類(3D)序列
4.1.6其他類(Other)序列
4.2函數(Function)
……
10. Teechart中如何將圖表中的數據(包含名稱)
試試這個,顯示的就是名稱。
MsgBox 圖表名.Series(圖表ID).PointLabel(數據行號)