Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Deshabilitar Items de un PopUp (https://www.clubdelphi.com/foros/showthread.php?t=82251)

rotsen26 14-02-2013 20:27:13

Deshabilitar Items de un PopUp
 
Buenas tardres amigos, tengo un problema...
Les comento:
Tengo que deshabilitar algunos items de un popup según sea el estado haciendo una consulta de una tabla según el estatus... Si pueden ayudarme con eso se lo agradecería mucho!!!
Estos son los item del menú
CheckIn1
AgregarMovimiento1
AgregarMedicamento1
Cobrar1
Reservacion1

Cuando el estatus esté en DES Solo Reservacion1 aparesca habilitada...

Cuando el estatus esté en RES se deshabilite Reservacion1....

Cuando el estatus esté en OCU se deshabilite CheckIn1 y Reservación...

Se le agradece la ayuda!!!

Al González 14-02-2013 20:46:50

Si CheckIn1, AgregarMovimiento1... son los elementos TMenuItem, tan sólo tienes que cambiar su propiedad Enabled según corresponda.
Código Delphi [-]
If CampoEstado = ... Then
Begin
  CheckIn1.Enabled := True;
  ...
End
Else
Begin
  CheckIn1.Enabled := False;
  ...
End;

Si tienes navegación en el conjunto de datos, el evento apropiado para hacer esto podría ser OnDataChange del objeto TDataSource.

Espero te sirva.

Saludos.

Al González.

Chris 14-02-2013 21:01:58

La solución está en TAction
 
El nombre de la clase de los items del menú se llama "TMenuItem".

Siempre es recomendado que utilices TMenuItem's asociados a una acción (TAction). Para la solución que te daré necesitas que cada elemento del menú esté asociado a un TAction en particular. Por ejemplo, el item Reservacion1 puede estar asociado a una acción llamada ReservacionAction. En el evento OnUpdate de ReservacionAction utiliza un código similar a este:
Código Delphi [-]
procedure TMainForm.ReservacionActionUpdate(Sender: TObject);
begin
    (Sender as TAction).Enabled := (CampoEstado = 'DES');
end;

Delphi automáticamente se encargará de evaluar la anterior condición cada vez que el menú se muetre. Utiliza un código similar para el resto de acciones.

Saludos!


La franja horaria es GMT +2. Ahora son las 10:28:11.

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