ニュートン メニュー

株式会社ニュートン

マイクロソフトパートナー

体験版ダウンロード

製品案内

ライセンスパック

ライセンスについて

カスタマイズ受付

製品購入ガイド









直販ショップ!
ニュートンストアで購入
コンポーネントソースで購入
SE Shopで購入

優待販売・
 キャンペーン情報

ユーザサービス
〔サポートページ〕

サポート体制

お知らせ
・ニュースリリース
・イベント出展
・製品関連記事

会社概要

個人情報保護方針

お問い合わせ先

SSL GMOグローバルサインのサイトシール  

ニュートンホーム Q&A
TeeChart Pro .NET 3J

.NET対応インターラクティブ チャートコンポーネント
TeeChart Pro .NET 3J

このページは、TeeChart Pro .NET 3J のユーザ様より寄せられたご質問の一部とその回答を掲載しております。


【TeeChart Pro .NET 3J Q&A一覧】

QNo.

Q.質問

日付

A.回答

19

Q. TeeChart Pro .NET 3J を利用したアプリケーションが、インターネットに繋がっていない環境だと、起動するのにかなり時間がかかってしまいます。回避策はありますか?

2010/09/28

A. TeeChart Pro .NET 3J のアセンブリ (dll) にはデジタル署名を付加しているので、アプリケーションが使用するアセンブリの有効性を確認するために CRL(「証明書失効リスト」)のダウンロード処理を行います。
インターネットに接続していない環境でアプリケーションの起動が遅くなるのは、タイムアウトになるまで CRL のダウンロードを繰り返し試みてしまうことが原因です。

インターネットに接続していないマシンで使用する場合の回避方法として、以下の手順により CRL のダウンロードを実行しないように設定してください。 (CRL をダウンロードしない場合でも TeeChart Pro .NET 3J を利用することは可能です。)

  1. [コントロール パネル] - [インターネット オプション] を実行します。
  2. [インターネットのプロパティ] ダイアログで [詳細設定] タブ を選択します。
  3. [発行元証明書の取り消しを確認する] のチェックボックスをオフします。

また、.NET Framework 2.0 Service Pack 1 以降では、アプリケーション名.exe.config に以下の行を追加することにより、アプリケーション開始時の署名検証を無効にすることができます。

<configuration>
  <runtime>
    <generatePublisherEvidence enabled="false"/>
  </runtime>
</configuration>

18

 

Q.カレンダー系列の「月」と「曜日」を英語で表示するにはどうすればいいですか?

2010/08/18

A.下記のコードを参考にしてください。

C# :
private void Form1_Load(object sender, EventArgs e){
  System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-EN");
  Steema.TeeChart.Styles.
Calendar Series1 = new Steema.TeeChart.Styles.Calendar();
  tChart1.Series.Add(Series1);
  Series1.FillSampleValues();

}


VB :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-EN")
 
Dim Series1 As New Steema.TeeChart.Styles.Calendar()
  TChart1.Series.Add(Series1)
  Series1.FillSampleValues()
End Sub

17

Q. WPFに対応していますか?

2009/03/05

A. はい、Visual Studio 2008用のmsiにWPF用のアセンブリが含まれます。

16

Q. たとえば、左軸の最小値を-2、最大値を2、インクリメントを0.2と設定すると、チャートのサイズによっては、左軸の最小値のラベルが表示されない場合があります。どうしてですか?

2008/10/03

A. これは仕様です。回避策としては下記のコードをご使用ください。


C# :
private void Form1_Load(object sender, EventArgs e)
{
  Steema.TeeChart.Styles.Bar bar = new Steema.TeeChart.Styles.Bar(tChart1.Chart);

  bar.FillSampleValues(5);

  tChart1.Axes.Left.Automatic = false;
  tChart1.Axes.Left.SetMinMax(-2, 2);
  tChart1.Axes.Left.Increment = 0.2;

  tChart1.Axes.Left.Labels.ValueFormat = "#0.0";

  double I;
  tChart1.Axes.Left.Labels.Items.Clear();
  for (I = -20; I <= 20; I += 2)
    setLeftAxisLabels(I);

}

private void setLeftAxisLabels(double val)
{
  tChart1.Axes.Left.Labels.Items.Add(val / 10, String.Format("{0:0.0}", val / 10));
}

VB :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim bar As New Steema.TeeChart.Styles.Bar(TChart1.Chart)

  bar.FillSampleValues(5)

  TChart1.Axes.Left.Automatic = False
  TChart1.Axes.Left.SetMinMax(-2, 2)
  TChart1.Axes.Left.Increment = 0.2

  TChart1.Axes.Left.Labels.ValueFormat = "#0.0"

  Dim I As Integer
  TChart1.Axes.Left.Labels.Items.Clear()
  For I = -20 To 20 Step 2
    SetLeftAxisLabels(I)
  Next
End Sub

Private Sub SetLeftAxisLabels(ByVal Val As Integer)
  TChart1.Axes.Left.Labels.Items.Add(Val / 10, Format(Val / 10, "#.#"))
End Sub
 

15

Q. OpenGLは日本語に対応していますか?

2008/10/03

A. いいえ、対応していません。
英数字のみの対応となります。

14

Q. Windows VistaにTeeChart Pro .NET 3Jをインストールまたはアンインストールしようとしているのですが、「サポート担当者またはパッケージのベンダに問い合わせてください」というメッセージが表示され、インストールまたはアンインストールができません。 回避方法を教えてください。

2008/10/03

A. Windows Vista上で次の設定を行ってください。
[コントロールパネル]→[クラシック表示]→[ユーザアカウント]→[ユーザアカウント制御の有効化または無効化]→[ユーザアカウント制御(UAC)を使ってコンピュータの保護に役立たせる]のチェックを外してください。
その後で、再度インストールまたはアンインストールを行ってください。

13

Q. ClickOnce には対応していますか?

2008/10/03

A. はい、対応しています。
TeeChart Pro .NET 3J の製品紹介ページにClickOnceのデモページへのリンクを追加しました。ご活用ください。

12

 

Q.作成したアプリケーションとTeeChart.dllを配布先にコピーしても正しく動作しないのですが?

2008/10/03

A.TChartやChart、WebChartを使用するプロジェクトには「Licenses.licx」ファイルが必要です。このファイルは、チャートが追加されるときにVisual StudioのIDEによってTChart (Windows Formのチャート)やWebChart (Web Formのチャート)のプロジェクトに自動的に追加されます。また、「Licenses.licx」ファイルにはTeeChart.dllのバージョンが付加されますので、dllを変更した段階でlicxファイルも一緒に更新してください。

11

 

Q.チャートの背景を透明に設定して、クリップボードにコピーすると背景が青色になり透明ではありません。どうしてですか?

2008/10/03

A.クリップボードにコピーする際に透明イメージの背景が青くならないようにする方法は次のどちらかになります。

1)p-invokeつまり安全ではない(アンマネージドコード)C#のコードを使用する
2)アルファチャンネルのイメージをテストするアプリケーションに貼り付ける

TeeChartは「100%マネージドコードを使用」と告知しておりますので、最初の解決策を使用することはできません
そして2つ目の解決策は実行不可能です。

従いまして、この問題を解決することはできません。

10

 

Q.teechart.dllはWindows CE .NETと一緒に使用できますか?

2008/10/03

A.できません。teechart.dllはWindows CE .NETと一緒に使用できませんが、teechart.pocket.dllは一緒に使用できます(TeeChart Pro .NET 3J の製品バージョンに添付されています)。下記のフォルダ内にteechart.pocket.dllの使用例があります。

C:\Program Files\Steema Software\TeeChart for .NET v3\Examples\Compact Framework

9

 

Q.マーカラベルを10進法なしで表示するにはどのようにフォーマットしたらいいですか?

2008/10/03

A.次の例のように、GetSeriesMark()イベントを使用することができます。

C# :
this.bar1.GetSeriesMark += new Steema.TeeChart.Styles.Series.GetSeriesMarkEventHandler(this.bar1_GetSeriesMark);

private void Form1_Load(object sender, System.EventArgs e) {
  Random rnd = new Random();
  for(int i = 0; i < 10; ++i) {
    bar1.Add(Convert.ToDouble(i), rnd.NextDouble() * 10);
  }
  bar1.Marks.Style = Steema.TeeChart.Styles.MarksStyles.Percent;
}

private void bar1_GetSeriesMark(Steema.TeeChart.Styles.Series series, Steema.TeeChart.Styles.GetSeriesMarkEventArgs e) {
  string s = e.MarkText.Replace(" %", "");
  double d = Math.Round(Convert.ToDouble(s), 0);
  e.MarkText = d.ToString() + " %";
}


VB :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim rnd As New Random
  Dim i As Integer
  For i = 0 To 9
   Bar1.Add(Convert.ToDouble(i), rnd.NextDouble * 10)
  Next
  Bar1.Marks.Style = Steema.TeeChart.Styles.MarksStyles.Percent
End Sub

Private Sub Bar1_GetSeriesMark(ByVal series As Steema.TeeChart.Styles.Series, ByVal e As Steema.TeeChart.Styles.GetSeriesMarkEventArgs)
  Dim s As String = e.MarkText.Replace(" %", "")
  Dim d As Double = Math.Round(Convert.ToDouble(s), 0)
  e.MarkText = d.ToString() + " %"
End Sub

8

 

Q.PrintDocumentにチャートを描画するにはどうすればいいですか?

2008/10/03

A.下記のコードを参考にしてください。

C# :
private void button1_Click(object sender, System.EventArgs e) {
  tChart1.Printer.BeginPrint();
  tChart1.Printer.Print(new Rectangle(100,10,300,200));
  PrintDocument pDoc = tChart1.Printer.PrintDocument;
  pDoc.Print();
}


VB :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  TChart1.Printer.BeginPrint()
  TChart1.Printer.Print(New Rectangle(100, 10, 300, 200))
  Dim pDoc As System.Drawing.Printing.PrintDocument = TChart1.Printer.PrintDocument   pDoc.Print()
End Sub

7

 

Q.ボーランド社のC# Builderと互換性がありますか?

2008/10/03

A.TeeChart Pro .NET 3J のネイティブC# コンポーネントは、C# Builderと互換性があります。体験版をダウンロードして、C# Builderでお試しください。
体験版と製品版に含まれるExamples\DemoProjectフォルダ内のプロジェクトファイルをC# Builderでコンパイルする場合は、「プロジェクト」-「オプション」の「アプリケーション」のStartupオブジェクトの「TeeChart.Samples.MainForm」を「Steema.TeeChart.Samples.MainForm」に変更してください。

6

 

Q.UNICODEをサポートしていますか?

2008/10/03

A.TeeChartのTChartクラスはSystem.Windows.Forms.Controlから継承されており、Unicodeをサポートしています。使用しているVS.NETコードファイルがUNICODE形式で保存されるか確認してください。これは、コードファイルを開いて、ファイルメニューの保存オプションの詳細設定を選択して確認することができます。

5

 

Q.チャートにデータを追加する一番速い方法は?

2008/10/03

A.TeeChartにリアルタイムのデータを追加する一番速い方法は、折れ線系列を使用することです。描画速度をあげるには、DrawAllPointsプロパティを使用します。このプロパティは、同じXピクセル位置に配置されないポイント間の線だけを描画します。

C# :
fastLine1.DrawAllPoints = false;

VB :
FastLine1.DrawAllPoints = False

4

 

Q.チャートに大量のデータを追加する最も良い方法は?

2008/10/03

A.デザイン時に折れ線系列を使用して、下記ような配列やコードを使用できます。

C# :
private void Form1_Load(object sender, System.EventArgs e) {
  Steema.TeeChart.Styles.FastLine fastLine1 = new Steema.TeeChart.Styles.FastLine(tChart1.Chart);
  const int numPoints = 500000;
  fastLine1.GetHorizAxis.SetMinMax(0,numPoints-1);
  // Series1 に繰り返しなしポイントのみを描画するように通知(より速く処理します!)
  fastLine1.DrawAllPoints = false;

  // 500.000ポイントを生成しましょう。
  double[] myX = new double[numPoints];
  double[] myY = new double[numPoints];
  System.Random r = new System.Random();
  double tmp = r.NextDouble()*10000;
  for (int t=0; t<numPoints; t++) {
    tmp += r.Next(100)-49.5;
    myX[t] = t;
    myY[t] = tmp;
  }

  // ここで系列にポイントを追加
  fastLine1.Add(myX, myY);
}


VB :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim FastLine1 As New Steema.TeeChart.Styles.FastLine(TChart1.Chart)
  Dim numPoints As Integer = 500000
  FastLine1.GetHorizAxis.SetMinMax(0, numPoints - 1)
  ' Series1 に繰り返しなしポイントのみを描画するように通知(より速く処理します!)
  FastLine1.DrawAllPoints = False

  ' 500.000ポイントを生成しましょう。
  Dim myX(numPoints) As Double
  Dim myY(numPoints) As Double
  Dim R As New System.Random
  Dim tmp As Double = R.NextDouble() * 10000
  Dim t As Integer
  For t = 0 To numPoints - 1
   tmp += R.Next(100) - 49.5
   myX(t) = t
   myY(t) = tmp
  Next t

  ' ここで系列にポイントを追加
  FastLine1.Add(myX, myY)
End Sub

3

 

Q.チャートの幅を縮めると、X軸のラベルの一部が表示されないのですが?

2008/10/03

A.下記のコードを使用すると、そのような現象を最小限に抑えられます。

C# :
private void Form1_Load(object sender, System.EventArgs e) {
  Steema.TeeChart.Styles.Bar bar1 = new Steema.TeeChart.Styles.Bar(tChart1.Chart);
  bar1.FillSampleValues(20);
  tChart1.Axes.Bottom.Automatic = false;
  tChart1.Axes.Bottom.Increment = 2;
  tChart1.Axes.Bottom.Labels.Separation = 0;
  tChart1.Axes.Bottom.SetMinMax(bar1.XValues.Minimum, bar1.XValues.Maximum);
  tChart1.Dock = System.Windows.Forms.DockStyle.Fill;
}


VB :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim Bar1 As New Steema.TeeChart.Styles.Bar(TChart1.Chart)
  Bar1.FillSampleValues(20)
  TChart1.Axes.Bottom.Automatic = False
  TChart1.Axes.Bottom.Increment = 2
  TChart1.Axes.Bottom.Labels.Separation = 0
  TChart1.Axes.Bottom.SetMinMax(Bar1.XValues.Minimum, Bar1.XValues.Maximum)
  TChart1.Dock = System.Windows.Forms.DockStyle.Fill
End Sub

2

 

Q.系列ポイントがある所だけX軸のラベルを表示するにはどうすればいいですか?

2008/10/03

A.下記のコードを参考にしてください。

C# :
Steema.TeeChart.Styles.Line line1 = new Steema.TeeChart.Styles.Line(tChart1.Chart);
Random rnd = new Random();
for(int i = 0; i < 10; ++i) {
  double xValue = rnd.Next(20);
  double yValue = rnd.Next(100);
  line1.Add(xValue, yValue, xValue.ToString());
}
tChart1.Axes.Bottom.Labels.Style = Steema.TeeChart.AxisLabelStyle.Text;


VB :
Dim Line1 As New Steema.TeeChart.Styles.Line(TChart1.Chart)
Dim Rnd As New Random
Dim I As Integer
For I = 0 To 9
   Dim xValue As Double = Rnd.Next(20)
   Dim yValue As Double = Rnd.Next(100)
   Line1.Add(xValue, yValue, xValue.ToString)
Next
TChart1.Axes.Bottom.Labels.Style = Steema.TeeChart.AxisLabelStyle.Text

1

 

Q.下軸に日付と時間をどのように表示すればいいですか?

2008/10/03

A.下記のコードを参考にしてください。

C# :
private void Form1_Load(object sender, System.EventArgs e) {
  Steema.TeeChart.Styles.Line line1 = new Steema.TeeChart.Styles.Line(tChart1.Chart);
  Random rnd = new Random();
  DateTime start = DateTime.Now;

  line1.XValues.DateTime = true;

  for(int i = 0; i < 20; ++i) {
    line1.Add(start, rnd.Next(100), "", Color.Red);
    start = start.AddSeconds(30);
  }

  tChart1.Axes.Bottom.Labels.Angle = 90;
  tChart1.Axes.Bottom.Labels.DateTimeFormat = "G";
  tChart1.Axes.Bottom.Increment = Steema.TeeChart.Utils.DateTimeStep[(int)Steema.TeeChart.DateTimeSteps.OneMinute];
}


VB :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim Line1 As New Steema.TeeChart.Styles.Line(TChart1.Chart)
  Dim Rnd As New Random
  Dim Start As DateTime = DateTime.Now
  Dim I As Integer

  Line1.XValues.DateTime = True

  For I = 0 To 19
   Line1.Add(Start, Rnd.Next(100), "", Color.Red)
   Start = Start.AddSeconds(30)
  Next

  TChart1.Axes.Bottom.Labels.Angle = 90
  TChart1.Axes.Bottom.Labels.DateTimeFormat = "G"
  TChart1.Axes.Bottom.Increment = Steema.TeeChart.Utils.DateTimeStep(Steema.TeeChart.DateTimeSteps.OneMinute)
End Sub

DateTimeFormat文字列に関する詳細は下記を参照してください:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemglobalizationdatetimeformatinfoclasstopic.asp

 

Copyright (C) NEWTONE Corporation. All rights reserved.