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 

seguridad

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

Buenas...
una pregunta...
es posible guardar el nombre de un boton en una tabla de una bd, luego hacer una consulta y de acuerdo al estado... colcoar ese boton Show o False¿

gracias de antemano..
_________________
><(((((º> 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

Hola Likibuay:

Estuve analizando tu problema y encontre que esa misma configuración puede repetirse no solo para el form donde estas trabajando.

Supongamos lo siguiente y creo que por ahi va tu consulta.

voy a presentar un ejemplo de algo cotidiano que se realiza en privilegios en cuanto a bases de datos, puede que tengas uno o varios botones que son similares o por que no decirlo realizan las mismas funciones (buscar, editar, agregar, borrar, imprimir) que son la opciones mas comunes, pero de acuerdo a lo que estas preguntando si entra un usuario que tiene el privilegio de consultar por que asi lo has desidido, los otro botones, deben permanecer en estado falso o no presionables. bien si tienes muchos forms con estos botones lo mas basico es que grabes dentro de los privilegios el estado de estos botones y NO referirte a ellos por su nombre, a fortunadamente todos si no es por demas la mayoria de componentes traen consigo una propiedad de nombre TAG. que almacena un valor entero generalmente casi no se usa pero para este caso nos puede ser muy util.

bien ahora van los pasos.

1.- Crea una tabla con los campos suficientes para identificar a los botones.
algo como esto , (nombre del boton, Estado del boton)
Código:
bBuscar - BuscarEstado

bEditar  - EditarEstado

bAgregar - AgregarEstado

bBorrar - BorrarEstado

bImprimir - ImprimirEstado


estos campos deben ser de tipo entero y los campos de estado tambien ya que contienen el estado del boton, en este caso un campo de tipo numerico para almacenar un solo numero 0 - desactivado, 1 - activado

y les asignas valores por ejemplo
Código:
bBuscar = 1000
BuscarEstado = 1

{...}

bImprimir = 1005
ImprimrEstado = 0


Ahora bien en el form donde tienes los botones, usa la propiedad tag para asignarles el mismo numero por ejemplo
Código:
this->bBuscar->Tag = 1000;


Posteriormente realizas un recorrido de los componentes del un form y y comparas la propiedad tag del componente con el primer registro de la tabla

cuando encuentres un componete que sea igual al numero registrado en el campo * en este caso el boton buscar *, entonces cambias el estado del boton con el valor que hay en el campo "Estado"

algo como esto.

Código:

   TButton *pBoton;
   for(int i=0; i < F->ComponentCount; i++)
   {
      Application->ProcessMessages();
      if(
         F->Components[i]->InheritsFrom(__classid(TSpeedButton))   ||
         F->Components[i]->InheritsFrom(__classid(TButtonControl)) ||
         F->Components[i]->InheritsFrom(__classid(TToolButton))
        )
      {
         pBoton= reinterpret_cast< TButton *>(F->Components[i]);

         switch(pBoton->Tag)
         {
            case 1000: // boton BUSCAR;
              this->bBuscar->Enabled = (bool) BuscarEstado->Value;
              break;

         }
         Application->ProcessMessages();
      }
   }


donde BuscarEstado es el campo que contiene el estado del boton, en este ejemplo trae 1 por lo tanto este boton estará habilitado.

es una idea pues desconozco tu base de datos (motor y estructura) por lo tanto lo estoy haciendo de una manera general.

Saludos
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
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.