Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Error, Help

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Error, Help Responder citando

Buenas...
tengo un problema con el siguiente código..
utilizo Builder C++ 6

lo q quiero es habilitar componentes según el perfil.
Código:

       Query1->SQL->Text="SELECT boton FROM perfiles_permisos where idperfil='"+perfil+"' and estado ='1'";
        Query1->Open();
        while(!Query1->Eof){


  TLMDButton * button;
  TLMDTabSheet * pestana;
  TLMDPageControl * carpeta;

     for(int i=0; i <ComponentCount>ClassNameIs("TLMDTabSheet"))    pestana = (TLMDTabSheet *)Components[i];
         if(Components[i]->ClassNameIs("TLMDButton"))      button = (TLMDButton *)Components[i];
         if(Components[i]->ClassNameIs("TLMDPageControl")) carpeta = (TLMDPageControl *)Components[i];

         if(button->Name == Query1->Fields->Fields[0]->AsString){
            button->Visible=false;
         }
         if(pestana->Name == Query1->Fields->Fields[0]->AsString){
            pestana->TabVisible=false;
         }
         if(carpeta->Name == Query1->Fields->Fields[0]->AsString){
           carpeta->Visible=false;
         }

     }
          Query1->Next();
         }
        Query1->Close();



este es el error q me sale cuando lo trato de hacer en tiempo de ejecución, gracias de antemano.
http://s3.subirimagenes.com:81/otros/previo/thump_3042490dibujo.jpg
_________________
><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Al parecer estas tratando de usar un componente que no tiene una asignación o creación en memoria

Código:
button = (TLMDButton *)Components[i];


Intenta usarlos de esta manera

Código:
button = reinterpret_cast<TLMDButton *>(Components[i]);

_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Estoy de acuerdo con Cesar. Creo que tratas de hacer uso de punteros a componente inválidos. Yo trataría de hacer lo siguiente:

Código:
TLMDButton * button;
.....
button = dynamic_cast< TLMDButton* >(Components[i]);
.....
// Si button es nulo, no se encontró ningún TLMDButton en el array...
if(button){
     if(button->Name == Query1->Fields->Fields[0]->AsString){
            button->Visible=false;
     }
}


Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Escafandra, Cesar gracias por contestar.

tratando con los códigos q uds postean aquí también me sale error...
sigo intentando...

muchas gracias.
_________________
><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Re: Error, Help Responder citando

likibuay escribió:

....
Código:

......

     for(int i=0; i <ComponentCount>ClassNameIs("TLMDTabSheet"))   

..........


.......


¿Estás seguro que asi es la sentencia 'for' que tienes?
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Si, lo que Cesar te sugiere es que debes marcar la opción "Deshabilitar HTML en este mensaje" para que no confunda los "< >" con etiquetas HTML o hacerlo en tu perfil.

Esa parte del bucle for no la hemos podido ver, pero una fuente del error puede ser un límite mal establecido. Para todos los componentes del array debe ser:

Código:
for(int i=0; i <ComponentCount - 1; i++){
........
........
}


Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.