![]() |
Programming Guide |
WideStudio Index Table of contents |
Como obter uma classe derivada
Pode-se obter uma classe derivada da instância através dos seguintes métodos:
O método
Descrição WSCbase* getChildInstance(char*) retorna a classe derivada pelo nome da instância WSClistData getChildren() retorna a classe derivada
long getAllChildren(WSClistData&) retorna recursivamente todas as classes derivadas.
Como obter a classe derivada por um nome específico
Utilize "WSCbase::getChildInstance()".
void event_procedure(WSCbase* object){No exemplo, WSCbase::getChildInstance() procura a classe derivada cujo nome é "newvbtn_001" a partir da instância "object" recursivamente, e retorna-a se achá-la ou NULL caso contrário.
//get the child which name is "newvbtn_001"
WSCbase* child = object->getChildInstance("newvbtn_001");
if (child != NULL){
//the child exists.
child->setVisible(True);
}
}
Como obter a classe derivada
Utilize o método "WSCbase::getChildren()".void event_procedure(WSCbase* object){O exemplo apresenta a obtenção da classe derivada que a instância contém. O método WSCbase::getChildren() retorna a lista WSClistData que contém a instância da classe derivada. Pode-se acessar cada classe derivada com o método getData(1), array operator(i) da lista, e coersão para void*WSCbase*.
//get the list of the children.
WSClistData children = object->getChildren();
//get the number of the children.
long num = children.getNum();
long i;
for(i=0; i<num; i++){
//get each child from the list.
WSCbase* child = (WSCbase*)children[i];
// WSCbase* child = (WSCbase*)children.getData(i); //same as children[i].
//access the child.
child->setVisible(False);
}
}
Como obter todas as classes derivadas recursivamente
Utilize o método "WSCbase::getAllChildren()".void event_procedure(WSCbase* object){
//the list for the return value of getAllChildren().
WSClistData children;
//get all of the children.
object->getAllChildren(children);
//get the number of children.
long num = children.getNum();
long i;
for(i=0; i<num; i++){
//get each child from the list.
WSCbase* child = (WSCbase*)children[i];
//access the child.
child->setVisible(True);
}
}O exemplo apresenta a obtenção de todas as classes derivadas. A diferença do método getChildren() é que este retorna recursivamente todas as classes derivadas da instância, de sua derivada, e assim por diante....
Como obter todas as classes derivadas da classe base da janela de aplicação
Nós chamamos o método WSCbase::getAllChildren() da classe base da janela de aplicação para obter todas as suas classes derivadas.void cbop(WSCbase* object){
//get the parent application window.
WSCbase* win = object->getParentWindow();
//a list for the return value.
WSClistData children;
//get all of the children of the application window.
win->getAllChildren(children);
//get the number of the children.
long num = children.getNum();
long i;
for(i=0; i<num; i++){
//get each child.
WSCbase* child = (WSCbase*)children[i];
//access the child.
child->setVisible(False);
}
}
Copyright(C) WideStudio Development Team, 1999-2005 | Last modified: Jan 05, 2005 |