WideStudio Logo
WideStudio
Programming Guide
WideStudio Index
Table of contents


Como acessar o valor de propriedade de uma instância

No evento do programa, pode-se acessar a propriedade da instância pelo método: get/setProperty().

  Método de acesso
  Descrição
 getProperty()  obtém o valor de uma propriedade específica
 setProperty()  ajusta o valor de uma propriedade específica



Como obter um valor de uma propriedade

Pode-se obter o valor de uma propriedade pelo médoto de WSCbase: getProperty().

void event_procedure(WSCbase* object){

//Para obter um valor de uma propriedade: WSNx by string type.
WSCstring x = object->getProperty(WSNx);
printf("x=%s\n",(char*)x);

//Para obter um valor de uma propriedade: WSNy by short type.
short y = object->getProperty(WSNy);

}
No exemplo de WSNx, obtém-se o valor de tipo string. O tipo WSCstring gerencia o buffer de string automaticamente, então não há necessidade de que o programador preucupe-se com isso.

No exemplo de WSNy, obtem-se o valor de tipo short. O método "getProperty()" retorna o valor pelo tipo WSCvariant. O tipo WSCvariant pode converter os vários tipos automaticamente. O exemplo seguinte é uma conversão do tipo short para tipo string.

void cbop(WSCbase* object){

//Para obter um valor de propriedade: WSNx by string type.
WSCstring x = object->getProperty(WSNx);
printf("x=%s\n",(char*)x);

//Para obter um valor de propriedade: WSNy by short type.
short y = object->getProperty(WSNy);

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

Observação: Pode-se não obter o valor por um char*, se este for utilizado, pois o ponteiro será inutilizado quando o método WSCbase "getProperty()" for usado, porque o valor retornado é uma autovariável de WSCvariant, então o instância WSCvariant e seu buffer interno para strings é destruído quando o método é feito. Se desejar obter um ponteiro char*, examine o programa a seguir.

void event_procedure(WSCbase* object){

//Para obter um valor de propriedade: WSNlabelString by char pointer.
//Not good! the pointer string will be junk pointer!
char* string = object->getProperty(WSNlabelString);

//Para obter um valor de propriedade: WSNlabelString by char pointer.
//Good example. The string1 (WSCstring instance) keeps the string buffer.
WSCstring string1
string1 = object->getProperty(WSNlabelString);
char* str = (char*)string1;

}


Ajustando a propriedade

Pode-se ajustar a propriedade utilizando-se o método WSCbase: setProperty().
void event_procedure(WSCbase* object){

//Para obter um valor de propriedade: WSNx by string type.
char* x="100";
object->setProperty(WSNx,x);

//Para obter um valor de propriedade: WSNy by short type.
short y=100;
object->getProperty(WSNy,y);

}
No exemplo de WSNx, é ajustado um valor por um tipo string. No exemplo WSNy, é ajustado um valor por um tipo short.
O parâmetro do método "setProperty()" é um tipo WSCvariant type, então a coersão (conversão) é automática.

Atualizando a instância para refletir o valor alterado

Use o método "update()", "draw()" e "redraw()" para atualizar a instância refletindo os valores alterados.
  obj1->setProperty(WSNlabelString,"string1"); 
obj1->update(); //updates the instance
obj2->setProperty(WSNlabelString,"string2");
obj2->update(); //updates the instance

Usualmente, a atualização é automática quando o procedimento de evento é realizado, mas se desejar uma atualização imediata, pode utilizar o método update(),draw(),redraw().

  O método: "update()" ou "draw()" atualiza a instância se necessário, mas "redraw()" atualiza compulsoriamente.

Document Release 3.80 for WideStudio ver 3.80, Jan 2005


WideStudio documents index | Table of contents

Copyright(C) WideStudio Development Team, 1999-2005 Last modified: Jan 05, 2005