WideStudio Application Builder User's Guide(Perl言語)

オブジェクトのプロパティ値を取得/設定するには

イベントプロシージャにおいて、オブジェクトのプロパティに対してアクセ スすることができます。次のAPIを利用します。

アクセス関数 機能
mwt::WSCvariant mwt::WSCbase_getProperty() プロパティ値の取得
mwt::WSCvariant mwt::WSCbase_setProperty() プロパティ値の設定



プロパティ値の取得

オブジェクトのプロパティを取得するには、WSCbase クラスのメンバ関数である getProperty() を利用します。

#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
use mwt;

sub event_procedure {
        my ($object) = @_;
 
	# "x" (X座標)プロパティの値の文字列による取得
	$x = $object->getProperty("x"); 
	printf("x=%s\n",$x->getCharPtr()); # 文字列の取得

	# "y" (Y座標)プロパティの値の取得
	$y = $object->getProperty("y"); 
	printf("y=%d\n",$y->getLong()); # long 型の値の取得
}
1;

"x" の例では、文字列で値を取得し、 "y" の例では、数値型で受け取っています。関数 getProperty() は、 WSCvariant 型で値を返しますが、WSCvariant 型は、それぞれの型の 値を取り出す事ができます。

mwt::WSCvariant 値取得関数 機能
mwt::WSCvarinat_getChar() char 型の値の取得
mwt::WSCvarinat_getUnsignedChar() unsigned char 型の値の取得
mwt::WSCvarinat_getShort() short 型の値の取得
mwt::WSCvarinat_getUnsignedShort() unsigned short 型の値の取得
mwt::WSCvarinat_getLong() long 型の値の取得
mwt::WSCvarinat_getUnsignedLong() unsigned long 型の値の取得
mwt::WSCvarinat_getInt() int 型の値の取得
mwt::WSCvarinat_getUnsignedInt() unsigned int 型の値の取得
mwt::WSCvarinat_getFloat() float 型の値の取得
mwt::WSCvarinat_getDouble() double 型の値の取得
mwt::WSCvarinat_getCharPtr() char* 型(文字列)の値の取得



プロパティ値の設定

オブジェクトのプロパティを設定するには、WSCbase クラスのメンバ関数である setProperty() を利用します。

#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
use mwt;

sub event_procedure {
        my ($object) = @_;

	# "x" (X座標)プロパティの文字列による設定
	$x="100";
	$object->setProperty("x",$x); 

	# "y" (Y座標)プロパティの設定
	$y=100; 
	$object->setProperty("y",$y); 
	return;
}
1;

"x" の例では、文字列で値を設定しています。"y" の例では、整数型で値 を設定しています。



プロパティ値の描画への反映

通常、イベントプロシージャの実行直後に反映されますが、変更後、プロパ ティの値を直ちに反映させたい場合、update()、draw()、redraw() を呼び 出します。

ウィンドウシステムによっては、(例えば、X11 システムの場合など) 描画 を行った際、すぐにウィンドウシステムに反映されない場合があります。そ のような場合は、WSDappDev クラスの update() を呼び出してください。

#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
use mwt;

sub event_procedure {
  my ($object) = @_;

  $newvlab_001->setProperty("labelString","テキスト"); 
  $newvlab_001->update();    # 直ちにオブジェクトを更新。
  mwt::WSGIappDev()->update(); # ウィンドウシステムへの描画要求を反映させます。
 
  $newvlab_002->setProperty("labelString","テキスト"); 
  $newvlab_002->update();    # 直ちにオブジェクトを更新。
  mwt::WSGIappDev()->update(); # ウィンドウシステムへの描画要求を反映させます。  return;
}1;


Document Release 3.80 for WideStudio ver 3.80, Jan 2005


WideStudio documents index | 目次
バグ情報、ご質問等ございましたら、メーリングリストでご確認の上、 御気軽にこちらの方までよろしくお願いいたします。