WideStudio Programming Guide

| WideStudio Programming Guide | WideStudio Index Table of contents

> ## How to access a value of the property of the instance

> In the event program, you can access the property of the instance by the method: get/setProperty().

> the access method | Description
> getProperty() | get a value of the specified property
> setProperty() | set a value to the specified property

> ### How to get a value of the properties

> You can get a value of the property by the method of WSCbase: getProperty().

>     void event_procedure(WSCbase* object){

>       //To get a value of the property: WSNx by string type.
>       WSCstring x = object->getProperty(WSNx);
>       printf("x=%s\n",(char*)x);

>       //To get a value of the property: WSNy by short type.
>       short y =  object->getProperty(WSNy);

>     }

> In the example of WSNx, it gets a value by string type. The WSCstring type manages the buffer of the string automatically, so there is no need to manage it by programmer.
> In the example of WSNy, it gets the value by short type. The method: getProperty() returns a value by WSCvariant type. The WSCvariant type can convert the various kinds of types automatically. The following example is a conversion of short type into string type.

>     void cbop(WSCbase* object){

>       //To get a value of the property: WSNx by string type.
>       WSCstring x = object->getProperty(WSNx);
>       printf("x=%s\n",(char*)x);

>       //To get a value of the property: WSNy by short type.
>       short y =  object->getProperty(WSNy);

>       //convert into string..
>       WSCvariant stry = y;
>       printf("y=%s\n",(char*)stry);
>       //convert into double.
>       printf("y=%fl\n",(double)stry);
>     }

> Notice: You can not get the value by char*,if you use it,the pointer will be junk pointer when the method of WSCbase: getProperty() will be done, because the returned value is auto variable of the WSCvariant, so the WSCvariant instance and its internal buffer for string is destroyed when the method is done. If you want to get the char* pointer, see the following program.

>     void event_procedure(WSCbase* object){

>       //To get a value of the property: WSNlabelString by char pointer.
>       //Not good! the pointer string will be junk pointer!
>       char* string = object->getProperty(WSNlabelString);

>       //To get a value of the property: WSNlabelString by char pointer.
>       //Good example. The string1 (WSCstring instance) keeps the string buffer.
>       WSCstring string1
>       string1 = object->getProperty(WSNlabelString);
>       char* str = (char*)string1;

>     }

> ### Setting of property

> You can set a value to the property by the method of WSCbase: setProperty().

>     void event_procedure(WSCbase* object){

>       //To set a value to the property: WSNx by string type.
>       char* x="100";
>       object->setProperty(WSNx,x);

>       //To set a value to the property: WSNy by short type.
>       short y=100;
>       object->getProperty(WSNy,y);

>     }

> In the example of WSNx, it sets a value by string type. In the example of WSNy, it sets a value by short type. The parameter of the method: setProperty() is WSCvariant type, so it converts the value automatically.

> ### Updating the instance to reflect the changed value

> Use the method: update(),draw(),redraw() to update the instance to reflect the changed value.

>       obj1->setProperty(WSNlabelString,"string1");
>       obj1->update();  //updates the instance
>       obj2->setProperty(WSNlabelString,"string2");
>       obj2->update();  //updates the instance

> Usually, it updates automatically when the event procedure is done, but if you want to update right away,you can use the method: update(),draw(),redraw().
> The method: update() or draw() updates the instance if needed, but redraw() updates compulsory.

Document Release 3.70 for WideStudio ver 3.70, Feb 2004

WideStudio documents index | Table of contents

Copyright(C) T. Hirabayashi, 2000-2004 | Last modified: Feb 25, 2004