FF528 ポスト処理関数-GUI関数
 
 ◆ 概要 ◆

FieldView固有の機能へのアクセスを提供するポスト処理関数について説明します。ここでは、ポスト処理関数のうち、GUIパネル作成に使用する関数について説明します。
※関数の入力引数としてリストされたテーブルの値は、必ずしも必要ではありません。 ほとんどの場合、入力にフィールドが指定されていない場合、そのフィールドのデフォルト値が使用されます。

 ◆ 詳細 ◆
 

make_panel(make_panel_input)
この関数を使用することでユーザーは独自のパネルを作成できます。 入力引数として、ユーザーが作成したいウィジェットを記述するテーブルを指定します。ユーザは任意の数のウィジェットを追加することができます。各ウィジェットは何回でも使用することができます。この関数はパネルオブジェクトのハンドルを返します。このパネル内のウィジェットには、入力テーブルに指定されている順番に1からはじまる番号が割り当てられます。返されたハンドルは番号インデックスを持つテーブルであるため、特定のウィジェットへの特定のアクセスが可能になります。スクリプトの完了後にパネルを使用できる状態になるので、make_panel関数は、グローバル変数を保持するためにset_preserve_globals(1)を呼び出します。現在のところmake_panelコマンドはMAC OSではサポートされていません。

make_panel_input
このテーブルはユーザーが希望するパネルを作成するためにmake_panel()関数が必要とする情報を保持します。
入力フィールド データ型 コメント デフォルト値
title string パネルのタイトル  
xloc number パネルの左上隅の水平位置(ピクセル単位)  
yloc number パネルの左上隅の垂直位置(ピクセル単位)  
width number パネルの幅(ピクセル単位)  
height number パネルの高さ(ピクセル単位)  
text widget spec table table 0個以上のエントリのテーブル  
type string “text”: テキスト入力ボックス  
title string パネルのタイトル  
action function 関数定義または関数ポインタ  
button widget spec table table 0個以上のエントリのテーブル  
type string “button”:押すことができるラベル付きボタン  
title string パネルのタイトル  
action function 関数定義または関数ポインタ  
slider widget spec table table 0個以上のエントリのテーブル  
type string “slider”: スライダーまたはタイプインエントリーで値を設定できます。スライダの「最小値」および「最大値」は、読み取り専用のエントリーとして表示されます。  
title string パネルのタイトル  
action function 関数定義または関数ポインタ(ユーザーがスライダーのドラッグを止めた時に呼び出されます)  
dragaction function 関数定義または関数ポインタ(ユーザーがスライダーをドラッグしている間に呼び出されます)  
value table スライダの初期値  
abs_min number    
current number    
abs_max number    
digits number スライダ値を表示する際に保持する有効桁数を指定する整数。 数値がゼロ以下に指定した場合、すべての可能なスライダ位置が異なる文字列として出力されることを保証する最小値となります。  

self:set()
この関数はmake_panel()関数の入力テーブルのactionフィールドで使用できます。この関数が使用されているウィジェットの値として入力引数を設定します。

self:get()
この関数はmake_panel()関数の入力テーブルのactionフィールドで使用できます。この関数が使用されているウィジェット内の関連フィールドの値を取得します。

例:

--define functions to be used with panel
function button_test() 
  print ("Result of button test.") 
end

function slider_test(new_pos)
  print ("Current slider is ",new_pos)
end

--set panel specifications
make_panel_input = {
  title = "demo panel",
  xloc=700,yloc=100 ;

  { --button widget
    type = "button",
    title = "Button Test",
    action = function()
    button_test()
    end
  },

  { --text widget
    type = "text",
    title = "Enter text followed by carriage return:",
    action = function(self) 
    print("text is "..self:get()) 
    end
  }, 

  { --slider widget
    type = "slider",
    title = "Slider Value:",
    value = {
      abs_min = 1,
      current = 50,
      abs_max = 100,
    },
    drag_action = function(self)
      slider_test( self:get().current )
    end,
    action = function(self)
      slider_test( self:get().current )
    end
  }
}

--create panel
panel_handle = make_panel(make_panel_input)

・この資料の内容は予告なしに変更されることがあります。
・いかなる場合でも、この資料の内容およびその運用の結果に関しては一切の責任を負いません。
・この資料の一部または全部を無断で使用、作成することはできません。
All rights reserved by Vinas Co., Ltd.
sales@vinas.com