WideStudio Logo
WideStudio
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){
//get the child which name is "newvbtn_001"
WSCbase* child = object->getChildInstance("newvbtn_001");
if (child != NULL){
//the child exists.
child->setVisible(True);
}
}
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.


Como obter a classe derivada

Utilize o método "WSCbase::getChildren()".
void event_procedure(WSCbase* object){
//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);
}
}
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*.


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);
}
}


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