ニュートンメニュー

株式会社ニュートン

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

体験版ダウンロード

製品案内

カスタマイズ受付

ライセンスパック

ライセンスについて

製品購入ガイド

直販ショップ!
ニュートンストアで購入

コンポーネントソースで購入
SE Shopで購入
アット・ニフティストアで購入

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

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

Windows 7
対応状況

Visual Studio
2010 対応状況

Visual Studio
2008 対応状況

サポート体制

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

会社概要

個人情報保護方針

お問い合わせ先

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

 
ニュートンホーム Q&A
Instrumentation ModelKit 3.7J

クール計器コンポーネント
Instrumentation ModelKit 3.7J

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


【Instrumentation ModelKit 3.7J Q&A一覧】

QNo.

タイトル

Q. 質問

日付

A. 回答

22

オリジナルな計器コントロールの作成

Q. Instrumentation ModelKitで、全くオリジナルな計器コントロールを作成することはできますか?
 

2010/03/01

A. はい、独自の計器を作成できます。
また、既存の計器コントロールを流用したしたものも作成できます。

計器の作成は、「Instrumentデザイナ」で行います。
計器を作成する方法につきましては、以下のドキュメントをご覧ください。

ユーザーズガイド「NETModelKitSuiteUserGuide.chm」の

[Instrumentation ModelKit]→[オブジェクトについて]→[計器について]
および
[Instrumentation ModelKit]→[計器のデザインについて]→[スライダ付きの簡単な計器をデザイン]
および
[Instrumentation ModelKit]→[計器のデザインについて]→[複雑な式を使用して計器を作成]
 

21

製品版なのに体験版ダイアログが表示される

Q. 体験版ではない製品版のライセンス登録を行ったInstrumentation ModelKit を含む.NET ModelKitを使用したアプリケーションをエンドユーザの実行環境で起動すると体験期間を示すダイアログ表示される場合があります。どうしたらよいですか?
 

2009/06/29

A. はい、それはプロジェクト内にある「licenses.licx」ファイルが関係しています。.NET ModelKitに限らず市販のコンポーネントをフォームに配置するとVisual Studioによってそのコンポーネントが自動的に「licenses.licx」にリスト(記述)されます。
しかし、フォームに配置せず実行時に新しいインスタンスを作成して利用するようなコードを記述してある場合は、「licenses.licx」にそのコンポーネントの記載はありません。
そういった場合にそのコンポーネントのライセンスが見当たらないため「体験版」などのダイアログが表示される仕組みになっているのです。
これを回避するためには、Visual Studioに頼らず必要なコンポーネントをあらかじめ「licenses.licx」ファイルに記載しておけばよいのです。

以下に、.NET ModelKitで使用するコンポーネントを製品別に記載します。必要部分をそのまま、「licenses.licx」に記載してください。

含まれる製品 コンポーネント名 licenses.licx上の記載
Report Sharp Shooter(全エディション)
および
ModelKit Suite
ReportManager PerpetuumSoft.Reporting.
Designer.ReportDesigner,
PerpetuumSoft.Reporting, Culture=neutral
Report Sharp Shooter(Liteを除く全エディション)
および
ModelKit Suite
ReportDesigner
(RSS.RunTimeDesigner)
PerpetuumSoft.Reporting.
Components.ReportManager,
PerpetuumSoft.Reporting, Culture=neutral
Report Sharp Shooter(Webを除く全エディション)
および
ModelKit Suite
ReportViewer
(RSS.Win)
PerpetuumSoft.Reporting.
View.ReportViewer,
PerpetuumSoft.Reporting, Culture=neutral
Report Sharp Shooter(Lite,Winを除く全エディション)
および
ModelKit Suite
SharpShooter
WebViewer
(RSS.Web)
PerpetuumSoft.Reporting.
Web.SharpShooterWebViewer,
PerpetuumSoft.Reporting.Web, Culture=neutral
OLAP ModelKit
および
ModelKit Suite
DataCube PerpetuumSoft.Olap.DataCube,
PerpetuumSoft.Olap,
Culture=neutral
Instrumentation ModelKit(Webを除く全エディション)
および
ModelKit Suite
Widget
(IMK.Win)
PerpetuumSoft.Instrumentation.
Windows.Forms.Widget,
PerpetuumSoft.Instrumentation, Culture=neutral
Instrumentation ModelKit(Winを除く全エディション)
および
ModelKit Suite
WidgetProducer
(IMK.Web)
PerpetuumSoft.Instrumentation.
Web.WidgetProducer,
PerpetuumSoft.Instrumentation.
Web,Culture=neutral
Chart ModelKit(Webを除く全エディション)
および
ModelKit Suite
ChartViewer
(Chart.Win)
PerpetuumSoft.Charts.Windows.
Forms.ChartViewer, PerpetuumSoft.Charts,
Culture=neutral
Chart ModelKit(Winを除く全エディション)
および
ModelKit Suite
WebChartViewer
(Chart.Web)
PerpetuumSoft.Charts.Web.
WebChartViewer,
PerpetuumSoft.Chart.Web,
Culture=neutral

 

20

Visual Studio 2008のデザインのツールボックスに.NET Model Kit Suiteのコンポーネントが表示されません

Q. Visual Studio 2008がインストールされている環境に、.NET Model Kit Suiteをインストールしましたが、Visual Studio 2008のデザインのツールボックスに.NET Model Kit Suiteのコンポーネントが表示されません。
回避方法を教えてください。
 

2008/06/12
2008/07/30

A. .NET ModelKit Suite 3.7J のインストーラでは現在、Visual Studio 2008のIDEのツールボックスへのコンポーネントの自動登録のオプションがございませんので、次の通り手動で登録してください。

デザイン画面で「ツールボックス」上で右クリックメニューより
「タブの追加」を選び、例えば".NET ModelKit Suite 3.7J"といった
名称で新しいタブを作成します。
その新しいタブ上から、右クリックメニューの「アイテムの選択」を使います。

「アイテムの選択」ダイアログで名前空間でソート後、
名前空間が[PerpetuumSoft]で始まるものすべてにチェックをいれます。
「OK」ボタンを押します。

Instrumentation ModelKit 3.7J(バージョン3.8) で修正され、インストールすれば Visual Studio 2008でも自動的にツールボックスに登録されるようになりました。  

19

Webページでゲージの色変更

Q. Webページが2ページあって、「Page1.aspx」にはwidget holderコンポーネントが、「Page2.aspx」にはwidget producerコンポーネントがあります。「Page1.aspx」内でwidget holderのproducerURLプロパティに「Page2.aspx」を割り当て 、「Page2.aspx」で定義した温度計を「Page1.aspx」上で表示します。
「Page2.aspx」のwidget producerで、緑→黄→赤になる色分けのスケールにしたい場合、「Page2.aspx」のwidget producer
で定義してある温度計のスケールのcolorizerプロパティ を、「Page1.aspx」から変更すること ができますか?
例えば、Green = 70%, Yellow = 20%, Red = 10%といったように。
この場合、「Page1.aspx」のwidger holder のParametersプロパティを使用して、「Page2.aspx」のスライダ値やラベルのテキストが変更できることは知っています。

2008/06/06

A. 残念ながら、colorizer は複合オブジェクトで、「Page2.aspx」のページに渡すことはできません。

18

WebページでWidget ProducerコンポーネントとWidget Holderコンポーネントを同一ページにできるか

Q. ゲージの使用について調べていて、WebForms に関して質問があります。ASPX ページにはwidget producerがあります。メインページにはwidget holder があって、そのwidget holderのProducerURLプロパティにはwidget producerのあるページを設定しています。
しかし、これらを単一ページで実現する方法はありますか?

2008/06/06

A. Widget Producerが配置されているページは、Widget Holder のためのイメージを生成するのに使用されますので、Widget ProducerコンポーネントとWidget Holderコンポーネントは同一ページで利用することはできません。

17

ページにWidgetProducer があると、Page_Load イベントを取得できない

Q. ページにWidgetProducer を追加すると、page_init イベントが発生しますが、page_load イベントは発生しません。どうしてこうなるかわかりますか?

2008/06/06

A. Widget Producer が配置されているページが読み込まれていません。実際、このページはWidget Holder が表示するイメージしか返しません。このページのpage_load イベントがWidgetProducer で動作しないのはそのためです。

16

計器の制御

Q. 実行時に温度計を追加し、色も変更できる方法を 教えてください。

2008/06/06

A. 実行時モードに温度計を追加(作成)するのは非常に困難ですが、前もってimk ファイルを用意しておくことはできます。このファイルに温度計のデザインを入れておき、その温度計をウィジェットに読み込むことができます。

コード:

widget1.Instrument = (PerpetuumSoft.Instrumentation.Model.Instrument)PerpetuumSoft.Framework.Serialization
.XSerializationManager.Read("Instrument.imk");

15

シリアライズ

Q. indicator widget を保存して読み込もうとしているのですができません。

基本的に、indicator widget をファイルに保存し、保存した状態に戻すためにindicator widget を読み込む必要があります。これをバイナリ形式で行わなければなりません。

サンプルをもらえませんか?

2008/06/06

A. XMLのシリアライズ過程でどんな問題があるのか、どうしてウィジェットをバイナリ形式で保存しなければならないのか教えてください。

Q. XMLのシリアライズは正常に動作するのですが、アプリケーションにはバイナリ形式でファイルに保存されている他のコンポーネントがあるので、バイナリで保存する必要があります。ユーザ用のファイル形式を壊してしまうかもしれないので、アプリケーションの残りのコンポーネントをXMLファイルで保存するように変更するのは大変だと考えています。

バイナリ形式でそれを行う方法はありますか?

A. この場合、オブジェクトだけXMLでシリアライズし、XMLをバイナリ形式で保存できます。

14

.NET Model Kit Suiteをインストールできません

Q. Windows Vistaに.NET Model Kit Suiteをインストールしようとしているのですが、次のメッセージが表示されインストールできません。
回避方法を教えてください。


 

2008/06/06

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

その後、再度インストールを実行してください。

13

透明度に関する質問

Q. コントロールの透明度に関する質問があります。背景イメージを使っています。背景イメージの前面には複数のレバーと丸いボタンコントロールを設定したいのですが、コントロールのBackColor 属性を「透明」にすると、コントロールの背景色がフォームの背景色に変わってしまいます。
例えば、フォーム全体の上にビットマップが1つあります。背景は見えません。ここで、
レバーを1つ追加します。イメージの前面には、フォームにある背景色付きの四角いコントロールがあります。透明になりません。

コントロールの背景を透明にするにはどうすればよいですか?

2008/06/06

A.      Transparentコントロールが必要です。透明なウィジェットのサンプルを以下の URL からダウンロードできます。

TrabsparencyWidget.zip
 

12

DashboardViewerのスクロール

Q. PerpetuumSoft.Charts.Windows.Forms.DashboardViewer でのスクロールバーの簡単な使用法がないかと考えています。アプリケーションのフォームには、他の多数のダッシュボードで継承されるBaseクラスのDashboardViewer があります。DashboardViewer にAutoScroll属性を指定してあります。デザイン時にダッシュボードのスクロールバーを手動で設定してみました。DashboardViewer でスクロールを有効にする方法を教えてもらえないでしょうか?

2008/06/06

A. 申し訳ございませんが、現時点ではそういった機能はございません。

11

DashboardViewer のサンプル

Q. DashboardViewerのサンプルプロジェクトはありますか?

2008/06/06

A. パッケージに含まれている次のサンプルをご覧ください。

Perpetuum Software->dotNet ModelKit Suite->Chart ModelKit-> 「Chart ModelKit samples center の実行」

「DashboardViewer
コントロールの使用」サンプルをご覧ください。

アプリケーションのソースコードは以下をご覧ください。

Perpetuum Software->dotNet ModelKit Suite->Chart ModelKit->Samples->Schart|VisaulBasic->ChartSamplesCenter
 

10

"ValueChanged" イベントはありますか?

Q. 計器の値が変更された時のイベントはありますか?

例えば、フォームにオン/オフの切り替え可能なスイッチがあります。そのコントロールのClickイベントを基に、
"ValueChanged" イベントとして処理して動作を行っています。しかし、スイッチ上でマウスを押したままカーソルをコントロールの領域外までドラッグし、マウスを離すと、スイッチの状態が変わるのに気付きました。しかし、(クリックイベントでは明らかにコントロール領域内のmouseup & mousedown が必要なのに)クリックイベントが発生しません。スイッチの状態が変わっても、コードはそれに応じません。

これを回避するためにつけるイベントはありますか?

2008/06/06

A. 現象を確認しようとしましたが、値をマウスで変更するたびにIndicatorWidget.ValueChanged が発生することに気付きました。ポインタをコントロールの後ろに移動してみても、このイベントは発生します。
Slider.ValueChanged
イベントを使ってみてください。次のコードを使用してこのイベントにイベントハンドラを追加できます。

コード:

PerpetuumSoft.Instrumentation.Model.Slider slider = indicatorWidget1.Instrument.GetByName("Slider1") as PerpetuumSoft.Instrumentation.Model.Slider;
if (slider != null)
slider.ValueChanged += new PerpetuumSoft.Framework.Model.PropertyEventHandler(slider_ValueChanged);

9

Indicator Widget の動作

Q. 計器の値を設定するために次のコードを使用しています。

objMeter.Value
= 10

(objMeter
がIndicatorWidget の場合)

この1行を実行するのに約50ミリ秒かかります。これは普通ですか?もっと速くなりませんか?VistaでVS 2005を実行しています。

2008/06/06

A. Instrumentation ModelKitは100%マネージドコードで書かれています。これには多くの利点がありますが、.NET (GDI+)での描画が比較的遅く、すべての動作がGDI+での再描画と関連があります。

8

スケールを反転できますか?

Q. 最小値を100に、最大値を-100に設定するには?

2008/06/06

A. Scale.Reverse プロパティを使ってみてください。

7

オドメータの値

Q. C#を使用してどのようにオドメータまたは数値の値を動的に変更すればよいのでしょうか?

2008/06/06

A. instrumentのスライダの値を動的に変更するには、instrument からSlider オブジェクトを取得し、それに必要な値を設定しなければなりません。
例:

コード:


PerpetuumSoft.Instrumentation.Model.Slider slider = indicatorWidget1.Instrument.GetByName("Slider1") as PerpetuumSoft.Instrumentation.Model.Slider;
if (slider != null)
slider.Value = 10;
 
また、計器にスライダがひとつだけの場合は、IndicatorWidget コントロールを使用し、SliderName プロパティを設定することをお勧めします。
その後で、以下のコードを使用して値を設定できます。

indicatorWidget1.Value = 10;

 

6

Colorizer クラスの作成方法

Q. CustomLabels クラスに新規のColorizer クラスを設定したいのですが、Colorizer クラスのColorSections を設定するものがありません。このメンバを実行時に変更できますか?

2008/06/06

A. 実行時にCustomLabels の色を変更したいということでしょうか?
PerpetuumSoft.Instrumentation.Model.Drawing.SectionsColorizer クラスを使用できます。次のコードはCustomLabels1の色の変更方法を示したものです。

コード:


PerpetuumSoft.Instrumentation.Model.CustomLabels labels = indicatorWidget1.Instrument.GetByName("CustomLabels1") as PerpetuumSoft.Instrumentation.Model.CustomLabels;
if (labels != null)
{
PerpetuumSoft.Instrumentation.Model.Drawing.SectionsColorizer myColorizer = new PerpetuumSoft.Instrumentation.Model.Drawing.SectionsColorizer();
myColorizer.ColorSections.Add(new PerpetuumSoft.Instrumentation.Model.Drawing.ColorSection(Color.Red, 0.3));
myColorizer.ColorSections.Add(new PerpetuumSoft.Instrumentation.Model.Drawing.ColorSection(Color.Yellow, 0.7));
myColorizer.ColorSections.Add(new PerpetuumSoft.Instrumentation.Model.Drawing.ColorSection(Color.Green, 1.0));
labels.Colorizer = myColorizer;
}

5

円の色

Q. Instrumentation Modelkitを使用しています。C#コードを使用して動的に円の色を変更するにはどうすればよいのでしょうか?

2008/06/06

A. 次のようなコードを使用してください。

コード:


PerpetuumSoft.Instrumentation.Model.Instrument instrument = widget1.Instrument;
if (instrument != null)
{
PerpetuumSoft.Instrumentation.Model.Circle circle = instrument.GetByName("Circle1") as PerpetuumSoft.Instrumentation.Model.Circle;
if (circle != null)
{
circle.Fill = new PerpetuumSoft.Framework.Drawing.SolidFill(Color.Red);
// or some other PerpetuumSoft.Framework.Drawing.*****Fill
}
}

4

実行時のスタイルの変更

Q. 実行時にゲージの外観を簡単に変える方法はありますか?今、Instrumentation Model Kitを試しているところで、ボタンをくりっくしたらモノクロ(白黒)の外観がデフォルトの「フルカラー」に切り替わるようにしたい。

2008/06/06

A. 計器の各ビジュアルオブジェクトにカスタムなスタイルを割り当てることができます。スタイルには塗りつぶし、線種、フォントがあります。オブジェクトの外観を変更するには、該当するスタイルのプロパティを変更するだけです。
スタイルは
Instrument.Styles プロパティのコレクションに格納されています。
つまり、オブジェクトの外観を変更するには、該当するスタイルを
Instrument.Styles プロパティから取得し、プロパティのいくつかを変更してください。

以下のサンプルをご覧ください。

ChangeStylesExample.zip.

実行時のスタイルの変更を示しています。
独自のスタイルを設定してください。

3

ウィジェットを有効にした状態で、マウスクリックしたときに値を変更させないようにするには

Q. コードの中だけで値を制御する必要があります(データベースから取得した値に応じてコードを設定)。
Click イベントを処理できるようにするためにウィジェットを有効にしなければなりません。
でも、ユーザがウィジェットをクリックすると値が変更します。
マウスをクリックしたときに値が変更されないようにし、私がイベントハンドラを使えるようコントロールにClickイベントを渡す方法を教えてもらえませんか?

2008/06/06

A. マウスクリックで計器を変更しないようにするには、Slider.Active プロパティをtrueに設定し、独自にイベントを処理してください。

2

動的に変更したときにスライダの値を表示するためのVB コード

Q. 動的に変更したときに、ウィジェットのスライダの値を表示するためのVB .NETのサンプルコードはありますか?例えば、Form1にラベルが2つあって、ユーザがジョイントの周りでラベルを回転した場合、表示されたLabel.Text (動的な値を表示)の値を動的に変更するには、イベントハンドラのVBコードはどのようになりますか?

2008/06/06

A. パッケージに含まれているサンプル:メインメニュー – スタート->すべてのプログラム-> Perpetuum Software->dotNet ModelKit Suite ->Instrumentation Model Kit->Samples->Visual Basic->WidgetUseExampleをご覧ください。

1

ウィジェット

Q. 計器のウィジェットを使用して、次のVB.NETのコードでCircularGage1とSlider1を制御します。

Public Class Form1

Private Sub Slider1_ValueChanged(ByVal sender As System.Object
, ByVal e As System.EventArgs) Handles Slider1.ValueChanged
CircularGauge1.Value = Slider1.Value
End Sub
End Class

この場合、Instrumentation Model Kit のMeter 1を制御するには、
ウィジェットのスライダにどんなVB.NETコードを使用しなければならないでしょうか?

2008/06/06

A. Indicator Widget に計器を配置し、Slider.Name プロパティを設定し、次のようなコードを使用できます。Indicator Widget を使用しない何らかの理由がある(例:複数のスライダがあって、それぞれ値を設定しておかなければならない)場合、次のコードを使用してください。

コード:

Dim slider1 As PerpetuumSoft.Instrumentation.Model.Slider = widget1.Instrument.GetByName("Slider1")
slider1.Value = value

ここで計器のオブジェクトを名前で取得してから必要な値を設定します。

 

Copyright (C) NEWTONE Corporation. All rights reserved.