객체의 속성지를 취득/ 설정하기에는
이벤트 프로시저에있어서, 객체의 속성에대하여 접근(access)
할수 있습니다. 다음의 API를 사용합니다.
| 접근(access) 함수 | 기능 |
| 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->getProperty("labelString","텍스트");
$newvlab_001->update(); # 일찍이 객체을 갱신.
mwt::WSGIappDev()->update(); # 윈도우 시스템에로 묘화요구를 번영시킴.
$newvlab_002->getProperty("labelString","텍스트");
$newvlab_002->update(); # 일찍이 객체을 갱신.
mwt::WSGIappDev()->update(); # 윈도우 시스템에로 묘화요구를 번영시킴.
return;
}
1;