Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-03-2013
rotsen26 rotsen26 is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 41
Poder: 0
rotsen26 Va por buen camino
Inhabilitar botones según el estatus en una tabla de la base de datos!!!

Buenas tardes amigos, estoy queriendo hacer algo sobe inhabilitar los botones según el estatus el cual es un campo dentro de una tabla...

Lo que quiero hacer es algo parecido a esto...

Ej.

Código Delphi [-]
if qry_edo_habestatus.value='DES' then
    begin
      BTN1.Enabled:=true;
      BTN2.Enabled:=false;
      BTN3.Enabled:=false;
      BTN4.Enabled:=false;
      BTN5.Enabled:=false;
      BTN6.Enabled:=false;
    end;

Como se muestra en el ejemplo, si es estatus es 'Des' el único botón habilitado sea el primero, y si es en caso contrario se pongan los otros habilitados y el primero no.

Si alguien sabe como solucionarlo y alguna otra manera de hacerlo se lo agradecería mucho!!!
Responder Con Cita
  #2  
Antiguo 14-03-2013
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No se si entiendo bien, pero si es solo cambiar la condicion del primer boton, tal vez usando un else sea suficiente:
Código Delphi [-]
if qry_edo_habestatus.value='DES' then
    begin
      BTN1.Enabled:=true;
      BTN2.Enabled:=false;
      BTN3.Enabled:=false;
      BTN4.Enabled:=false;
      BTN5.Enabled:=false;
      BTN6.Enabled:=false;
    end
else
    begin
      BTN1.Enabled:=false;
      BTN2.Enabled:=true;
      BTN3.Enabled:=true;
      BTN4.Enabled:=true;
      BTN5.Enabled:=true;
      BTN6.Enabled:=true;
   end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 14-03-2013
rotsen26 rotsen26 is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 41
Poder: 0
rotsen26 Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
No se si entiendo bien, pero si es solo cambiar la condicion del primer boton, tal vez usando un else sea suficiente:
Código Delphi [-]
if qry_edo_habestatus.value='DES' then
    begin
      BTN1.Enabled:=true;
      BTN2.Enabled:=false;
      BTN3.Enabled:=false;
      BTN4.Enabled:=false;
      BTN5.Enabled:=false;
      BTN6.Enabled:=false;
    end
else
    begin
      BTN1.Enabled:=false;
      BTN2.Enabled:=true;
      BTN3.Enabled:=true;
      BTN4.Enabled:=true;
      BTN5.Enabled:=true;
      BTN6.Enabled:=true;
   end;
Saludos

La verdad así lo tengo pero me marca un error...
http://www.clubdelphi.com/foros/atta...1&d=1363223728
Imágenes Adjuntas
Tipo de Archivo: jpg error.jpg (32,5 KB, 23 visitas)
Responder Con Cita
  #4  
Antiguo 14-03-2013
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Me parece raro, el error no creo que tenga que ver con esto.
No se.
saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 14-03-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Caral Ver Mensaje
Hola
Me parece raro, el error no creo que tenga que ver con esto.
No se.
saludos
Totalmente de acuerdo, nada parece indicarlo.

El único modo que se me ocurre que podría traer problemas, es que los botones aún no estuvieran instanciados en ese punto del código .

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 14-03-2013 a las 03:15:33. Razón: ortografía
Responder Con Cita
  #6  
Antiguo 14-03-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Ejecuta paso a paso y a ver en qué línea falla, porque el código no parece tener nada incorrecto.
Yo como soy un poco "flojo" hubiera hecho algo así:

Código Delphi [-]
b := qry_edo_habestatus.value='DES';

BTN1.Enabled:= b;
BTN2.Enabled:= not b;
BTN3.Enabled:= not b;
BTN4.Enabled:= not b;
BTN5.Enabled:= not b;
BTN6.Enabled:= not b;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 14-03-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 20
ozsWizzard Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Ejecuta paso a paso y a ver en qué línea falla, porque el código no parece tener nada incorrecto.
Yo como soy un poco "flojo" hubiera hecho algo así:

Código Delphi [-]
b := qry_edo_habestatus.value='DES';

BTN1.Enabled:= b;
BTN2.Enabled:= not b;
BTN3.Enabled:= not b;
BTN4.Enabled:= not b;
BTN5.Enabled:= not b;
BTN6.Enabled:= not b;
Y yo

¿No me deja editar por el número de caracteres?

Última edición por ozsWizzard fecha: 14-03-2013 a las 12:24:45. Razón: ...
Responder Con Cita
  #8  
Antiguo 14-03-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por ozsWizzard Ver Mensaje
¿No me deja editar por el número de caracteres?



Me he perdido...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 14-03-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 20
ozsWizzard Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje


Me he perdido...
Al editar, me decía que no podía. Había puesto "y yo... " y sólo quité los puntos suspensivos. Me decía que no podía tener un mensaje de menos de 10 caracteres (todo esto en ingles)

Al poner el texto que citas ya me dejó colgar el mensaje (evidentemente, ya había superado los 10 caracteres)
__________________
La Madurez se llama...
~~~Gaia~~~

Última edición por ozsWizzard fecha: 14-03-2013 a las 18:12:38.
Responder Con Cita
  #10  
Antiguo 14-03-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Otra opción:
Código Delphi [-]
procedure TForm.Tu_DataSetAfterScroll(DataSet: TDataSet);
var
  i: Integer;
begin
  for i:= 2 to 6 do
    TButton(FindComponent('BTN'+IntToStr(i))).Enabled:= qry_edo_habestatus.value = 'DES';
  BTN1.Enabled := not BTN2.Enabled
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 14-03-2013
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

También puedes "sobrecargar" el método UpdateActions de TForm:

Código Delphi [-]
type
  TMyDataForm: class(TForm)
  protected
    procedure UpdateActions; override;
  end;

implementation

procedure TMyDataForm.UpdateActions;
var
  Disabled: Boolean;

begin
  inherited;
  Disabled := qry_edo_habestatus.value <> 'DES';
  BTN1.Enabled := Disabled;
  BTN2.Enabled := not Disabled;
  BTN3.Enabled := not Disabled;
  BTN4.Enabled := not Disabled;
  BTN5.Enabled := not Disabled;
  BTN6.Enabled := not Disabled
end;


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #12  
Antiguo 14-03-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por maeyanes Ver Mensaje
Hola...

También puedes "sobrecargar" el método UpdateActions de TForm:
Esa también es una excelente opción.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #13  
Antiguo 23-03-2013
rotsen26 rotsen26 is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 41
Poder: 0
rotsen26 Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
Hola...

También puedes "sobrecargar" el método UpdateActions de TForm:

Código Delphi [-]
type
  TMyDataForm: class(TForm)
  protected
    procedure UpdateActions; override;
  end;

implementation

procedure TMyDataForm.UpdateActions;
var
  Disabled: Boolean;

begin
  inherited;
  Disabled := qry_edo_habestatus.value <> 'DES';
  BTN1.Enabled := Disabled;
  BTN2.Enabled := not Disabled;
  BTN3.Enabled := not Disabled;
  BTN4.Enabled := not Disabled;
  BTN5.Enabled := not Disabled;
  BTN6.Enabled := not Disabled
end;


Saludos...


Disculpe, en donde se encuentra "UpdateActions", es en algún evento especial o donde se coloca el codigo ese???
Responder Con Cita
  #14  
Antiguo 23-03-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola rotsen26.

En el formulario en que residen los botones del que ignoramos el nombre (de allí TMyDataForm), cuál te indicó maeyanes agregas la palabra protected y declaras el procedimiento. (o copias y pegas desde aquí)
La cabecera y código correspondiente al mismo, van en la sección Implementation. (Shift+Ctrl+C la genera automáticamente)

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-03-2013 a las 19:58:18.
Responder Con Cita
  #15  
Antiguo 23-03-2013
rotsen26 rotsen26 is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 41
Poder: 0
rotsen26 Va por buen camino
Gracias a Todos por sus aportaciones, ya solucioné el problema!!!
Responder Con Cita
  #16  
Antiguo 05-04-2013
accfree accfree is offline
Registrado
NULL
 
Registrado: abr 2013
Posts: 2
Poder: 0
accfree Va por buen camino
Solución Lógica

En el caso concreto que indicas (según un campo de una tabla) lo lógico es que habilitar y deshabilitar el botón se haga en el onDataChange del TDataSource.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
procedimiento para habilitar o inhabilitar botones leandro085 OOP 11 12-12-2011 01:20:52
Valor en celda de DBGrid según código en base de datos Gabo SQL 19 01-10-2007 09:08:00
actualizar datos de una tabla según datos de otra. GustavoCruz SQL 10 01-06-2007 23:18:44
Administracion de base de datos segun su experiencia @-Soft MS SQL Server 2 04-08-2005 08:32:15
Estatus de la tabla torito Varios 7 05-11-2004 21:58:33


La franja horaria es GMT +2. Ahora son las 09:31:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi