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 19-08-2010
sidneyb sidneyb is offline
Miembro
 
Registrado: nov 2007
Posts: 53
Poder: 17
sidneyb Va por buen camino
puedo lograr un CheckBox.OnChange?

buen dia estimados amigos, tengo una pequeña duda

estoy creando una aplicacion, en la que estoy realizando un registro de paises, estados y ciudades, los dos primeros con un par de combobox por lo que ya los tengo previamente registrados, deseo colocar un checkbox, para filtrar un dbgrid que tengo lleno gracias a una consulta en x tablas, pero deseo filtrar en ciertos casos para reducir la cantidad de registros mostrados en el grid dependiendo de que estado y pais este seleccionado, checked=filtrado y si no no me filtre, pero no deseo depender de otro boton que me mire el estado del checkbox, todo lo contrario, quiero que desde el mismo checkbox se detecte cuando ha sido modificado sin depender de otro componente... como podria ser posible hacerlo?

gracias por su ayuda
Responder Con Cita
  #2  
Antiguo 19-08-2010
urixiv urixiv is offline
Miembro
 
Registrado: sep 2006
Posts: 23
Poder: 0
urixiv Va por buen camino
Smile

Hola,
espero poderte ayudar, no se si hay otra manera, pero yo lo haria con el evento onClick del Checkbox.
Creo recordar, pero hablo de memoria lejana que este evento salta cuando alguien le da al checkbox, tanto con el raton o bien con el espacio una vez parado en el componente.

Bueno espero haberte podido ayudar
Responder Con Cita
  #3  
Antiguo 19-08-2010
sidneyb sidneyb is offline
Miembro
 
Registrado: nov 2007
Posts: 53
Poder: 17
sidneyb Va por buen camino
Cita:
Empezado por urixiv Ver Mensaje
Hola,
espero poderte ayudar, no se si hay otra manera, pero yo lo haria con el evento onClick del Checkbox.
Creo recordar, pero hablo de memoria lejana que este evento salta cuando alguien le da al checkbox, tanto con el raton o bien con el espacio una vez parado en el componente.

Bueno espero haberte podido ayudar

con el onclick nosolo tocaria o recibiria el click del mouse? no se si este programado tambien para captar la barra espaciadora, en todo caso, cualquier cosa que me detecte que ha cambiado de estado me sirve, solo me gustaria evitar otro componente, sino, tocara usarlo, pero igual probare tu planteamiento, honestamente no he probado, asumi que solo tomaria el click del raton, igual, sigo escuchando ideas, muchas gracias
Responder Con Cita
  #4  
Antiguo 19-08-2010
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 sydneyb.

A tál efecto podés usar los eventos OnDropDown y OnCloseUp del TComboBox.

Activando el filtro en OnDropDown y desactivándolo en OnCloseUp.


Saludos.

Última edición por ecfisa fecha: 19-08-2010 a las 18:51:56.
Responder Con Cita
  #5  
Antiguo 19-08-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
tambien puedes crear una variante del componente, sobreescribiendo la propiedad Checked

Código Delphi [-]
type TCheckBox=class(stdctrls.TCheckBox)
...
private
    FOnChange : TNotifyEvent;
protected
    procedure SetVChecked(c : boolean);
    function  GetVChecked : boolean;

published
    property Checked : boolean read GetVChecked write SetVChecked;
    property OnChange : TNotifyEvent read FOnChange write FOnChange;
end;

...

procedure TCheckBox.SetVChecked(c : boolean);
begin
   inherited Checked := c;
   if Assigned(FOnChange) then FOnChange(self);
end;

function TCheckBox.GetVChecked : boolean;
begin
   result := inherited Checked;
end;

algo asi. No se si te dara error al ya existir la propiedad checked. Si es asi, casi que lo mejor seria crear el componente de nuevo desde TCustomCheckBox. Un saludo, y espero que al menos cojas alguna idea que te sirva.

PD: creo que existen directamente los métodos SetChecked y GetChecked en la misma TCheckBox. En ese caso, se reduciria lo anterior a algo asi:

Código Delphi [-]

type TCheckBox = class (stdctrls.TCheckBox)
    private
     FOnChange : TNotifyEvent;
    protected
     procedure SetChecked(Value : boolean); override;
    public
    published
    property OnChange : TNotifyEvent read FOnChange write FOnChange;
...
end;

...

procedure TCheckBox.SetChecked(Value : boolean);
begin
     inherited SetChecked(Value);
     if Assigned(FOnChange) then FOnChange(self);
end;
    
end;

Lo mismo, a ver si te sirve. Saludos.

Última edición por coso fecha: 19-08-2010 a las 20:48:05.
Responder Con Cita
  #6  
Antiguo 19-08-2010
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

yo lo hago asi:
en el evenvto on click del checkbox
Código Delphi [-]
if checkbox1.checked=true then
begin
   Table1.filtered:=false;
   Table1.Filter:='lo que quieras';
   Table1.filtered:=True;
end;
if checkbox1.checked=false then
begin
   Table1.filtered:=false;
   Table1.Filter:='';
end;

Espero te sisrva

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
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
Lograr que funcione bien un richTextBox REHome .NET 2 06-12-2009 21:10:53
Lograr coordenadas de imagen. Besto Varios 5 14-08-2007 17:02:53
Como lograr el último ID insertado? anavarro Firebird e Interbase 2 25-11-2004 16:22:42
como puedo lograr el total alcides SQL 12 01-07-2004 17:52:13
OnChange en TListBox fedecm Varios 1 30-06-2004 17:24:32


La franja horaria es GMT +2. Ahora son las 18:49:39.


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