Ir al contenido


Foto

Desactivar boton al dejar lista vacia


  • Por favor identifícate para responder
6 respuestas en este tema

#1 edorantes

edorantes

    Advanced Member

  • Miembros
  • PipPipPip
  • 78 mensajes

Escrito 04 abril 2013 - 02:55

Hola amigos he luchado con un problemita , ¿Como desactivo un boton al dejar una lista vacia?
Tengo un boton para quitar items y he puesto esto dentro del mismo boton el problema es que supongamos que tienes 2 items entonces presionarias dos veces el boton osea por cada item, cuando ya quite todos los items con el boton tadavia me aparece activo hasa que le lo presiono otra vez es cuando se desactiva, espero me entiendan
Saludos


delphi
  1. if cobrolist.Items.Count >0 then begin
  2.  
  3.  
  4.  
  5.   btn_quitar.Enabled := True;
  6.  
  7.  
  8.     end else begin
  9.     btn_quitar.Enabled := false;
  10.     end;


  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 04 abril 2013 - 02:59

hola amigo, una pregunta ¿has colocado ese código antes  o después del bloque de eliminación?
  • 0

#3 edorantes

edorantes

    Advanced Member

  • Miembros
  • PipPipPip
  • 78 mensajes

Escrito 04 abril 2013 - 03:15

Lo habia colocado antes upss perdon por las molestias sere mas cuidadoso
Dios los bendice
  • 0

#4 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 04 abril 2013 - 03:26

Lo habia colocado antes upss perdon por las molestias sere mas cuidadoso
Dios los bendice


Ninguna molestia amigo mio, aquí a la gran mayoría nos encanta ayuda.
  • 0

#5 bigleaguer

bigleaguer

    Advanced Member

  • Miembros
  • PipPipPip
  • 66 mensajes

Escrito 04 abril 2013 - 04:53

Hola, también puedes habilitar/deshabilitar el botón de la siguiente forma, ademas de que resumes el código:



delphi
  1. btn_quitar.Enabled := cobrolist.Items.Count > 0;


  • 0

#6 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 04 abril 2013 - 05:02

Hola, también puedes habilitar/deshabilitar el botón de la siguiente forma, ademas de que resumes el código:



delphi
  1. btn_quitar.Enabled := cobrolist.Items.Count > 0;



Conciso y eficiente. Gracias amigo por la idea.
  • 0

#7 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 04 abril 2013 - 05:23

Resulta muy práctico hacerlo desde un TActionList, te voy a indicar cómo:

1- Arrastra un TActionList de la paleta Standard.

2- Haz dobleClick sobre el componente TActionList.

3- Pulsa el botón NewAction que se encuentra en la parte superior izquierda del Dialogo, o haciendo clikc con el botón derecho del mouse sobre la lista de la derecha del diálogo y escogiendo NewAction del menú contextual.

4- Selecciona la recién creada acción (Action1), colócale an la propiedad Caption lo que quieras que aparezca  en el caption del botón que ejecutará la acción, y el nombre que quieras.

5- Con la Action1 seleccionada,  ve a la pestaña EVENTS del inspector de objetos y haz doble click sobre el evento OnExecute, allí debes colocar solamente el código que elimina el item (no debes colocar aquí el código que controla el estado del control, eso lo haremos en el otro evento).

6- Con la Action1 seleccionada,  ve a la pestaña EVENTS del inspector de objetos y haz doble click sobre el evento OnUpdate y colocas el código que te pongo a continuación.

7- Quita todo el código del evento ONClick del botón que elimina los items, allí no coloques nada (esto lo hará la Action1).

8- Selecciona el botón que borra los Items y colocale en su propiedad ACTION la Action1.

Con esto el botón no solo se desactivará cuando no hayan Items, sino que también  se activará cuando vuelvan a haber items.



delphi
  1. procedure TForm1.Action1Execute(Sender: TObject);
  2. begin
  3.   { Aquí va el procedimiento que quita los Items, obviamente sin colocar nada de (btn_quitar.Enabled := cobrolist.Items.Count > 0) eso ya no lo necesitas, porque lo colocaremos en el otro evento}
  4. end;
  5.  
  6. procedure TForm1.Action1Update(Sender: TObject);
  7. begin
  8.   TAction(Sender).Enabled := cobrolist.Items.Count > 0;
  9. end;



Esta (action1) la puedes asignar a cuantos controles quieras que ejecuten la acción, como por ejemplo a un Item de un PopUpMenu, y notarás que al igual que el botón, se activa o desactiva en función de la cantidad de Items del cobrolist. (Puedes hacer el ejercicio de arrastrar un PopUpmenu, a éste agregar un item, luego al item de menú asignar la acción (Action1), finalmente asigna ese popupmenu al Form y verás como trabaja).

Cualquier inquietud, no dudes en preguntar.

Un saludo.
  • 0




IP.Board spam blocked by CleanTalk.