![]() |
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){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.
//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 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){No exemplo de WSNx, é ajustado um valor por um tipo string. No exemplo WSNy, é ajustado um valor por um tipo short.
//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);
}
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");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().
obj1->update(); //updates the instance
obj2->setProperty(WSNlabelString,"string2");
obj2->update(); //updates the instance
O método: "update()" ou "draw()" atualiza a instância se necessário, mas "redraw()" atualiza compulsoriamente.
Copyright(C) WideStudio Development Team, 1999-2005 | Last modified: Jan 05, 2005 |