ニュートン メニュー

株式会社ニュートン

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

YouTube公式チャンネル

体験版ダウンロード

製品案内

ライセンスパック

ライセンスについて

カスタマイズ受付

製品購入ガイド

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

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

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

サポート体制

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

会社概要

個人情報保護方針

お問い合わせ先

 

ニュートンホーム Q&A
TeeChart Pro 4J ActiveX

インタラクティブ チャートコンポーネント
TeeChart Pro 4J ActiveX

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


【TeeChart Pro 4J ActiveX  Q&A索引】

該当する「QNo.」をクリックするとその回答へ移動します。

QNo.

Q.質問

34

Q.印刷プレビューでキャンバスに描画したテキストや図形が出力されないのですが?

33

Q.VB.NETなどの.NET製品に対応していますか?

32

Q.フォームにTeeEditorやTeePreviewerを配置してプログラムを実行すると、コントロールの部分が白く抜けてしまうのですが、どうすればいいでしょうか?

31

Q.マウスホイールによるスクロールを無効にするにはどうすればいいでしょうか?

30

Q.Windows95にTeeChart Pro4J ActiveXの製品(OCXのバージョン 4.0.0.7)をインストールすると進捗率100%で止まってしまうのですが、どうすればいいでしょうか?

29

Q.IE5でどうしてズームとスクロールができないのでしょうか?

28

Q.チャートがズームされたかされないを、どのように確認しますか?

27

Q.系列のポイントを削除した後の領域(削除されたポイントがあった領域)を削除するにはどのようにするのですか?

26

Q.チャートにNULL値を追加するにはどのようにするのですか?

25

Q.チャート系列に全ての値の合計を表示するにはどのようにするのですか?

24

Q.モノクロプリンタでの印刷の場合、系列の色をどのように区別できますか?

23

Q.複数のページに分けてチャートを印刷できますか?

22

Q.実行時にリボン系列のラインのスタイルを設定(点線,破線など)しましたが、正しく表示できません。

21

Q.リボン系列を使用して円を表示できますか?

20

Q.データポイントの値によって色を変更できますか?

19

Q.円系列のそれぞれのスライスあるいはラベルにハイパーリンクを設定できますか?

18

Q.線の幅が1ピクセルより大きい場合、点線あるいは破線で描画する方法はありますか?

17

Q.系列に接続されている関数をどのように変更できますか?

16

Q.ガント系列を複数のページに分割すると最後のページが正しく表示されません。

15

Q.チャートのポイントにマウスポインタを移動した場合に、値のToolTipを表示するにはどうするのですか?

14

Q.株価のチャートを使用して、特定のポイントにA,B,Cあるいはテキストなどのラベルを描画したい。

13

Q.キャンバスにテキストを印刷するには?

12

Q.チャート上にどうやってカスタム描画するのですか?

11

Q.キャンドル系列のデータベースチャートで週末を削除するにはどうするのですか?

10

Q.コードでバー系列をMultibar stacked に設定する方法は何ですか?

9

Q.独自の対数のラベル付けはどのようにするのですか?

8

Q.1つのフォームの上下にある2つのチャートの左軸を同じ位置に設定するにはどうするのですか?

7

Q.VisualBasicでチャートのズームを行った場合、日付軸ラベルの間隔はどのように再スケールできるのですか?

6

Q.軸の小さい値が描画されないのですが?

5

Q.指定した値の範囲のピクセルサイズを取得するにはどうするのですか?

4

Q.全ての軸ラベルを表示するにはどうするのですか?

3

Q.チャートのスクロールまたはズームをするために、どのように軸のスケールを変更できますか?

2

Q.インターネットからクライアントコンピュータにインストールされるCABファイルの大きさは?

1

Q.TeeChart ActiveXコントロール(teechart.cab,teesmall.cab)には、認証コードがありますか?


【TeeChart Pro 4J ActiveX Q&A一覧】

QNo.

Q.質問

A.回答

34

 

Q.印刷プレビューでキャンバスに描画したテキストや図形が出力されないのですが?

A.開発環境から実行すると正しく出力されない場合がありますので、exeファイルを作成してご確認ください。

33

 

Q.VB.NETなどの.NET製品に対応していますか?

A.申し訳ありませんが、対応しておりません。

32

 

Q.フォームにTeeEditorやTeePreviewerを配置してプログラムを実行すると、コントロールの部分が白く抜けてしまうのですが、どうすればいいでしょうか?

A.TeeEditorやTeePreviewerのVisibleプロパティをFalseに設定して現象を回避してください。

31

 

Q.マウスホイールによるスクロールを無効にするにはどうすればいいでしょうか?

A.
OCXの
バージョンが4.0.1.0の場合
MouseWheelScrollプロパティをFalseに設定してください。

OCXのバージョンが4.0.0.9以下の場合
ホイール付きマウスには対応していないため、スクロールイベントを無効にしてもホイールの制御はできません。その場合は、下記のようにコーディングしてスクロールを無効にしてください。
例:
FormにTChartとCommandボタンを配置しています。

Dim PaintFlag As Boolean
Private Sub Command1_Click()
  TChart1.Series(0).FillSampleValues 10
End Sub
Private Sub TChart1_OnBeforeDrawChart()
  If PaintFlag = True Then
    PaintFlag = False
  Else
    TChart1.Axis.Left.Automatic = True
  End If
End Sub
Private Sub TChart1_OnZoom()
  PaintFlag = True
End Sub

30

 

Q.Windows95にTeeChart Pro4J ActiveXの製品(OCXのバージョン 4.0.0.7)をインストールすると進捗率100%で止まってしまうのですが、どうすればいいでしょうか?

A.インストールを中断し(中断できない場合はCtrl+Alt+Delでインストールプログラムを終了させる)、手動でOCXをレジストリに登録してください。
例:「スタート」-->「ファイル名を指定して実行」
  Regsvr32 "インストールしたパス\TeeChart.ocx"

29

 

Q.IE5でどうしてズームとスクロールができないのでしょうか?

A.TeeChartはブラウザ上でマウスによりズームやスクロールができます。しかしインターネットエクスプローラ5ではTeeChartのこの機能を実行するために、下記のイベントがブラウザのページに必要です。(イベントの中の記述は空でも構いません。)
例:
  VBScript
  ---------
  <SCRIPT LANGUAGE=VBSCRIPT>
  Sub TChart1_OnAfterDraw()
    'empty
  End sub
  </SCRIPT>
  JScript
  --------
  <SCRIPT LANGUAGE="JavaScript" FOR="TChart1" EVENT="OnAfterDraw()">
  <!-- //empty -->
  </SCRIPT>

28

 

Q.チャートがズームされたかされないを、どのように確認しますか?

A.チャートがズームされた場合、軸の最小値および最大値が再計算されるため、軸の「Automatic」プロパティがFalseに設定されます。チャートが「ズームを解除」された場合、軸の「Automatic」プロパティは全て元の設定に戻ります。全ての軸(あるいは指定する軸)が「Automatic」の場合、チャートはズームされません。

27

 

Q.系列のポイントを削除した後の領域(削除されたポイントがあった領域)を削除するにはどのようにするのですか?

A.それぞれのポイントに新しいX座標を割り当てるために、FillSequenceメソッドを使用してください。

26

 

Q.チャートにNULL値を追加するにはどのようにするのですか?  

A.SeriesクラスのAddNullあるいはAddNullXYメソッドを使用してください。Nullポイントは表示されません。

25

 

Q.チャート系列に全ての値の合計を表示するにはどのようにするのですか?  

A.例:円系列に3つのパイスライスがあり、それぞれのポイント値が10, 20, 30とします。この合計(=60)をチャートに表示したいのですが?

Series.YValues.TotalおよびTotalABSプロパティを使用して合計を表示できます。

24

 

Q.モノクロプリンタでの印刷の場合、系列の色をどのように区別できますか?  

A.プリンタの「グレースケール」が綺麗に出力できる場合、それぞれに異なる色の濃さで出力するとグラフの区別がつきます。
最もよい方法は、それぞれの系列に異なるBrush.Styleを選択することです。たとえば、円系列では「UsePatterns」プロパティでそれぞれのパイスライスに異なるパターンスタイルを設定できます。

23

 

Q.複数のページに分けてチャートを印刷できますか?

A.Chart1.MaxPointsPerPageプロパティを使用して1ページあたりのポイントの数を定義します。そして、NumPagesおよびPageプロパティを使用してループし、全てのページを印刷します。

22

 

Q.実行時にリボン系列のラインのスタイルを設定(点線,破線など)しましたが、正しく表示できません。

A.LinePen.Styleプロパティを設定してください。
しかし、LinePen.Widthが2以上に設定されると線のスタイルは変更できません。

21

 

Q.リボン系列を使用して円を表示できますか?

A.デフォルトでは、ほとんどの系列はX座標を使用してポイントの順番を設定します。
X座標が無いポイントを追加する場合、X座標は系列にポイントを追加した順番になります。
円を描画するためには、最初に自動順番付けを無効にしなければなりません。そうすることで、系列にポイントを追加した順番で描画できます。

20

 

Q.データポイントの値によって色を変更できますか?

A.PointColorプロパティを使用して色を変更できます。
例:
Dim t As Integer
  TChart1.Series(0).ColorEachPoint = True
  For t = 0 To TChart1.Series(0).Count - 1
    If TChart1.Series(0).YValues.Value(t) <150 Then 'your threshold here
      TChart1.Series(0).PointColor(t)=vbRed
    Else TChart1.Series(0).PointColor(t)=vbBlue
    End If
  Next t
 TChart1.Repaint '<-----凡例に新しい色を表示させるため

19

 

Q.円系列のそれぞれのスライスあるいはラベルにハイパーリンクを設定できますか?

A.円系列のOnClickイベントにリンク先コードを追加することで可能です。

18

 

Q.線の幅が1ピクセルより大きい場合、点線あるいは破線で描画する方法はありますか?

A.ありません。TeeChart のキャンバスは線の幅が1ピクセルより大きい場合、実線になります。

17

 

Q.系列に接続されている関数をどのように変更できますか?

A.全ての系列は、系列に関数をセットおよび変更するためのFunctionTypeおよびSetFunctionメソッドがあります。

16

 

Q.ガント系列を複数のページに分割すると最後のページが正しく表示されません。

A.TChartのMaxPointsPerPageプロパティは、系列のXポイント座標に従ってページに系列を分割します。
ガント系列を使用する場合、それぞれのポイントは2つのX座標を持ちます。ページでこのX座標が分けられた場合、最後のページが正しく表示されません。
ガント系列の場合は、MaxPointsPerPageプロパティの代わりにSetMinMaxメソッドを使用してください。
TChart1.Axis.Bottom.SetMinMax MyMin, MyMax
MyMinおよびMyMaxはページの開始と終了のX座標を設定します。

15

 

Q.チャートのポイントにマウスポインタを移動した場合に、値のToolTipを表示するにはどうするのですか?

A.下記のコードはVB5のサンプルで、マウスポインタをポイントに移動するとToolTipを表示します。
'これはグローバル変数
Dim OnSeriesPoint As Boolean

Private Sub TChart1_OnMouseMove(ByVal Shift As TeeChart.EShiftState, ByVal X As Long, ByVal Y As Long)
  'この例はポイントのX,Yの値を表示します。
  With TChart1
    'マウスポインタが系列の上にあるかどうかチェックし、ToolTipが表示されたかどうかチェックします。
    If .Series(0).Clicked(X, Y) <> -1 And OnSeriesPoint = False Then
      .Canvas.Brush.Style = bsSolid
      .Canvas.Pen.Color = vbBlack
      .Canvas.TextOut X + 10, Y, _
      Str(.Series(0).XValues.Value(.Series(0).XScreenToValue(X))) _
      & " " & _
      Str(.Series(0).YValues.Value(.Series(0).XScreenToValue(X))) & " "
      OnSeriesPoint = True
    End If

    'ToolTipを削除するためにチャートを再描画します。
    If .Series(0).Clicked(X, Y) = -1 And OnSeriesPoint = True Then
      OnSeriesPoint = False
      .Repaint
    End If
  End With
End Sub

14

 

Q.株価のチャートを使用して、特定のポイントにA,B,Cあるいはテキストなどのラベルを描画したい。

A.OnAfterDrawイベントに下記のコードを入れてください。
これは、2ポイントの間に線を描画し、その2ポイントにラベルを描画します。
(2ポイント目のラベルには1ポイント目との値の差も描画します)
With TChart1
  If .SeriesCount > 0 Then
    If .Series(0).Count > 10 Then
'ペンの設定
      .Canvas.Pen.Color = vbBlue
      .Canvas.Pen.Width = 1
      .Canvas.Pen.Style = psDot
      .Canvas.Brush.Style = bsClear
      '線を追加。
      '4番目のポイントから11番目のポイントまで線を描画
      .Canvas.MoveTo .Axis.Bottom.CalcXPosValue(.Series(0).XValues.Value(3)), _
      .Axis.Left.CalcYPosValue(.Series(0).YValues.Value(3))
      .Canvas.LineTo .Axis.Bottom.CalcXPosValue(.Series(0).XValues.Value(10)), _
      .Axis.Left.CalcYPosValue(.Series(0).YValues.Value(10))
      'ラベルのテキストボックスの背景パターンを設定
      .Canvas.Brush.Style = bsSolid
      '4番目のポイントの位置に1番目のラベルを描画
      .Canvas.TextOut .Axis.Bottom.CalcXPosValue(.Series(0).XValues.Value(3)), _
      .Axis.Left.CalcYPosValue(.Series(0).YValues.Value(3)), _
      "Point value: " + Str(.Series(0).YValues.Value(3))
      '11番目のポイントの位置に2番目のラベルを描画
      .Canvas.TextOut .Axis.Bottom.CalcXPosValue(.Series(0).XValues.Value(10)), _
      .Axis.Left.CalcYPosValue(.Series(0).YValues.Value(10)), _
      "Point value: " + Str(.Series(0).YValues.Value(10))
      '2番目のラベルの下に、2つの値の差を描画
      .Canvas.TextOut .Axis.Bottom.CalcXPosValue(.Series(0).XValues.Value(10)), _
      .Axis.Left.CalcYPosValue(.Series(0).YValues.Value(10)) + _
      .Canvas.TextHeight("Any letter"), "Change is: " + _
      Str(.Series(0).YValues.Value(10) - .Series(0).YValues.Value(3))
    End If
  End If
End With

13

 

Q.キャンバスにテキストを印刷するには?

A.OnAfterDrawイベントにカスタム描画のコードを記述してください。

12

 

Q.チャート上にどうやってカスタム描画するのですか?

A.TChart1.Canvasを使用してください。
カスタム描画を常に有効にするために、TChart1.OnAfterDrawイベントにカスタム描画内容のコードを記述してください。
テキストを出力する場合は、TChart1.Canvas.TextOutメソッドを使用してください。

11

 

Q.キャンドル系列のデータベースチャートで週末を削除するにはどうするのですか?

A.キャンドル系列の「系列」-「データ」タブの「日付」フィールドを選択しないでください。
これは、各ポイント(キャンドルのDateTime値の代わり)に異なるX値を割り当てます:1,2,3,4,5,6....
そして、日付ラベルを設定するために、「ラベル」フィールドに「Date」を選択してください。

10

 

Q.コードでバー系列をMultibar stacked に設定する方法は何ですか?

A.チャートにある各バー系列に以下のコードを設定してください。
TChart1.Series(0).asBar.MultiBar = mbStacked

9

Q.独自の対数のラベル付けはどのようにするのですか?

Q.OnGetNextAxisLabelイベントで対数ラベルを設定しなければなりません。
例:このデータがあった場合
TChart1.Series(0).Add 0.002, "", clTeeColor
TChart1.Series(0).Add 0.0035, "", clTeeColor
TChart1.Series(0).Add 0.005, "", clTeeColor
TChart1.Series(0).Add 0.007, "", clTeeColor
軸を設定
TChart1.Axis.Left.Logarithmic = True
TChart1.Axis.Left.TickOnLabelsOnly = True
TChart1.Axis.Left.SetMinMax 0.001, 10

ラベルを定義(OnGetNextAxisLabel イベント)
Private Sub TChart1_OnGetNextAxisLabel(ByVal Axis As Long, ByVal LabelIndex As Long, LabelValue As Double, MoreLabels As Boolean)
Dim tmpValue As Double
  If Axis = atLeft Then tmpValue = LabelValue
    Select Case LabelIndex
      Case 0 tmpValue = 0.001
      Case 1 tmpValue = 0.01
      Case 2 tmpValue = 0.1
      Case 3 tmpValue = 1
      Case 4 tmpValue = 10
      Case Else: MoreLabels = False
    End Select
    LabelValue = tmpValue MoreLabels = True
  End If
End Sub

8

Q.1つのフォームの上下にある2つのチャートの左軸を同じ位置に設定するにはどうするのですか?

A.それぞれのチャートで、左の軸ラベルスペースの幅を同じに修正するためにLabels.Sizeプロパティを使用して位置合わせができます。
例:
TChart1.Axis.Left.Labels.Size = 30
TChart2.Axis.Left.Labels.Size = 30

7

Q.VisualBasicでチャートのズームを行った場合、日付軸ラベルの間隔はどのように再スケールできるのですか?

A.TeeChartは、自動的にラベルの間隔を合わせませんが、OnZoomおよびOnUndoZoomイベントを使用してラベルを合わせることができます。
たとえば、下記のようなラベル形式のチャートとします。

With TChart1.Axis.Bottom
  .ExactDateTime = True
   .Increment = TChart1.GetDateTimeStep(dtOneMonth)
   .Labels.DateTimeFormat = "mmm-yyyy"
End With

そして、ズーム領域が31日より小さい場合、ラベルの間隔を修正するためにOnZoomイベントに次のコードを付加してください。

Private Sub TChart1_OnZoom()
  With TChart1.Axis.Bottom
    If .Maximum - .Minimum <31 Then 'eg. less than a month .'
      .Increment="TChart1.GetDateTimeStep(dtOneWeek)"
      .Labels.DateTimeFormat="dd-mmm-yyyy"
    End If
  End With
End If

6

Q.軸の小さい値が描画されないのですが?

A.デフォルトの軸ラベルの文字列書式は:#,##0,##0.###です。

とても小さい値の場合(たとえば:1E-09)、値が3桁少数より細かく上の書式文字列では常に同じ結果を戻します。全ての桁を表示させるには書式を(0.##################)に変更するか、空に設定してください。

5

Q.指定した値の範囲のピクセルサイズを取得するにはどうするのですか?

A.軸の「CalcXSizeValue(水平方向)」あるいは「CalcYSizeValue(垂直方向)」メソッドを使用してください。

4

Q.全ての軸ラベルを表示するにはどうするのですか?

A.デフォルトで、軸はいくつかのラベルを非表示にしてラベルの重なりを回避しているため、残りを表示できるように、十分なスペースがあります。
「Labels.Separation」プロパティをゼロに設定することで、全てのラベルを表示することができます。
Chart1.BottomAxis.LabelsSeparation = 0
他の方法として、軸ラベルの角度を90度に設定して重なりを回避できます。
Chart1.BottomAxis.LabelsAngle = 90

3

Q.チャートのスクロールまたはズームをするために、どのように軸のスケールを変更できますか?

A.該当する軸の「SetMinMax」メソッドを使用してください。

2

Q.インターネットからクライアントコンピュータにインストールされるCABファイルの大きさは?

A.TeeChart CABファイルは2つのバージョンがあります。
1.teechart.cab 647KB - 標準機能
2.teesmall.cab 397KB - 以下の機能がありません。
 ・TeeChartエディタなし
 ・JPEG サポートなし
 ・印刷プレビューなし
 ・バージョン情報なし
 ・ODBCアクセスなし
 ・OpenGL なし

1

Q.TeeChart ActiveXコントロール(teechart.cab,teesmall.cab)には、認証コードがありますか?

A.はい。Verisign,Inc(www.verisign.com)から認証コードを取得しています。

Copyright (C) NEWTONE Corporation. All rights reserved.