# Panel BrowserをVBに組み込んで実行

マニュアル > 運用ガイド > ランタイム実行編 > クライアントのランタイム実行 > # Panel BrowserをVBに組み込んで実行 |

実行概要

マイクロソフト社が提供する開発言語「Visual Basic(以降VB)」などにPanel Browserを組み込んでクライアント画面を表示する方法について説明します。本パッケージにはPanel Browser ActiveX インターフェースが同梱されています。VBなどの開発環境からこのActiveXを利用する事で、VBで開発した画面内にPanel Browserを組み込んで実行する事が出来るようになります。VBで開発した画面アプリケーションでPanel Browserの画面を直接表示・操作したい場合にはこちらの方法が適しています。

VBアプリケーションに組み込んで実行

FA-PanelをVBに組み込むには、VBのコンポーネント設定で、FA-Panelのコンポーネントを有効にする必要があります。VBの「ツールボックス」「アイテムの選択」「COMコンポーネント」から、「Robotics R&D FA-Panel Ver6」をチェックすることで、VBからPanel Browser ActiveXインターフェースを利用することができるようになります。

開発手順のサマリ

Panel EditorとVBを組み合わせた開発の手順は、下記のとおりです。

1.Panel Editorで画面を作成し、クライアント設定ファイル（xml）に保存する。

2.セットアップ機能でクライアント設定ファイル一式を出力する。

3.VBの画面にActiveXを貼り付け、セットアップ機能で出力されたクライアント設定ファイルの呼び出しを定義する。

4.VBでアプリケーション（exe）をビルドし、実行する。

上記の手順に従ってアプリケーション（exe）をビルドし、実機PC上に配置して実行してください。この際、設定ファイルやイメージなどのリソースファイルについては、セットアップ機能により指定フォルダにセットアップしたものを実機PCに配置します。また、実行したActiveXインターフェースからは、Panel Browserの画面上のコントロールや、スクリプト（グローバル変数、ユーザー定義関数など）を直接操作することができます。

VBのプログラムの中から設定ファイルを呼び出す処理は下記のような記述となります。

●VB.Net2010

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AxFAPanelBrowser1.OpenFile("sample.xml") End Sub

尚、ここで指定する設定ファイルのパスは、実機PCに実際に配置するパスと一致している必要がある点に注意して下さい。

この機能のサンプルは、以下からご利用頂けます。

上記サンプルの圧縮ファイル内に、VB2010のサンプルが用意されています。また、サンプルに含まれているsample01.xmlは、VBから呼び出されるクライアント設定ファイルです。本サンプルを動作させる際にはPanel Serverをオンラインとして下さい。

| ライセンスの関係上、ActiveXインターフェースはPanel Serverとの接続時のみ有効に動作する仕組みとなっております。

Panel Browser ActiveX リファレンス

Panel Browser ActiveXには以下のインターフェースが用意されています。

| ActiveXメソッド
メソッド名 | 説明
OpenFile | Panel Browserのクライアント設定ファイル（xmlファイル）をオープンします。
CallPanelMethod | Panel Browser内に定義されているユーザー定義関数を呼び出します。

| ActiveXメソッド
イベント名 | 説明
PanelEvent | Panel BrowserからVBなどの外部アプリケーションに通知するためのイベントです。Panel BrowserのルートのFirePanelEventメソッドをスクリプト中から呼び出すと、VB側でこのイベントが発生します。

| OpenFileメソッド Panel Browserのクライアント設定ファイル（xmlファイル）をオープンします。 構文 OpenFile( FileName ) パラメータ
FileName
| 型： | 文字
| ファイル名
戻り値
| 型： | ブール
| FALSE - 失敗。TRUE - 成功。
例
VBのプログラム中からxmlファイルをオープンするためには下記のようにします。一度xmlファイルを読み込んだ後に、異なるxmlファイルを開くこともできます。
| VB.Net
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      AxFAPanelBrowser1.OpenFile("C:¥work¥sample01.xml")
    End Sub
| オープンするxmlファイルの指定は相対パスでも指定可能です。 例） OpenFile("..\sample01.xml")

| CallPanelMethodメソッド Panel Browser内に定義されているユーザ定義関数を呼び出します。パラメータは必要な数（最大10個まで）だけ指定できます。 構文 CallPanelMethod( Name, [, p1] [, p2] [, p3] [, p4] [, p5] [, p6] [, p7] [, p8] [, p9] [, p10] ) パラメータ
Name
| 型： | 文字
| ユーザ定義関数名
p1　～ p10
| 型： | 文字
| ユーザ定義関数のパラメータ1 ～ 10
戻り値
| 型： | ユーザ定義関数の戻り値型
| ユーザ定義関数の戻り値
例
CallPanelMethodを利用して、Panel Browser内のグローバル変数にアクセスしてみます。
| Panel Browser
    //Browser 側//////////////////////////////////////////
    //ルートオブジェクトに下記の関数を定義する
    var a, b;
    function SetVariable(name, value)
    {
        switch(name)
        {
        case "a":
          a = value;
          break;
        case "b":
          b = value;
          break;
        }
    }

    function GetVariable(name)
    {
        switch(name)
        {
        case "a":
          return a;
        case "b":
          return b;
        }
    }
VB.Net
    '値の設定
    FAPanelBrowser1.CallPanelMethod "::SetVariable", "a", Text1.Text

    '値の取得
    Text2.Text = FAPanelBrowser1.CallPanelMethod("::GetVariable", "a")
| オープンするxmlファイルの指定は相対パスでも指定可能です。 例） OpenFile("..\sample01.xml")

| PanelEvent イベント Panel BrowserからVBなどの外部アプリケーションに通知するためのイベントです。Panel BrowserのルートのFirePanelEventメソッドをスクリプト中から呼び出すと、このPanelEventイベントが発生します。 構文 XXX_PanelEvent( ByVal sender As System.Object, ByVal e As [ライブラリ名称].[イベントハンドラ名称] ) ※「xxx」は、ActiveXコントロールのオブジェクト名 パラメータ
e.eventName
| 型： | 文字
| イベント名
e.p1
| 型： | 文字
| パラメータ1
e.p2
| 型： | 文字
| パラメータ2
例
Panel Browser内のボタンが押された時に、ボタンが押されたことをVBにPanelEventイベントとして通知します。そのイベントのパラメータとして、押されたボタンコントロール自身のテキスト文字列をVBに渡します。 VB側ではPanelEventを検知し、パラメータで受け取った文字列をエディットコントロールに表示します。
| Panel Browser
    event OnMouseUp(button)
    {
        ::FirePanelEvent(this.Text, 0, 0);
    }
VB.Net
    Private Sub AxFAPanelBrowser1_PanelEvent(ByVal sender As System.Object,_
                                             ByVal e As AxFAPANELBROWSERACTIVEXLib6._DFAPanelBrowserEvents_PanelEventEvent) _
        Handles AxFAPanelBrowser1.PanelEvent
        PanelEventText.Text = e.eventName
    End Sub
| PanelEventイベント内からのCallPanelMethodの呼び出しには対応しておりません。呼び出した場合、アプリケーションエラーが発生します。