Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #10  
Antiguo 24-08-2005
Avatar de Chente(rMan)
Chente(rMan) Chente(rMan) is offline
Miembro
 
Registrado: ago 2005
Posts: 89
Poder: 21
Chente(rMan) Va por buen camino
Tienes razón, creo que no me explique bien, pero como el titulo del post decia Deshabilitar y habilitar el onclick de un CheckBox, asumi que se entería , ahi estuvo mi error, "mia culpa" , ok. lo interare otra vez, tengo 30 ChekBox:

CheckBox1
.
.
CheckBox30

cada uno de ellos tiene codigo diferente en su evento onclick.

Cuando yo hago una busqueda sobre uno de mis reportes, la propiedad checked de estos CheckBox debe cambiar segun lo criterios que defino en mi busqueda, entonces, ya que tengo los resultados de mis busquedas, me preparo a cambiar la propiedad checked de los cb's, para ello, pongo a todos en false a su propiedad checked.

Código Delphi [-]
procedure TfrmForma.LimpiarCheckBox;
var Check: TcheckBox;
     I: Integer;
begin
  for I := 0 to ComponentCount - 1 do
    if Components[i] is TCheckBox then
      begin
        Check := TCheckBox(Components[i]);
        Check.Checked := False;
      end;
end;

Con esto se dispara el evento OnClick de todos los cb's. Para ello necesito deshabilitar el onclick de estos. por lo tanto hago esto.

Código Delphi [-]
procedure TfrmForma.LimpiarCheckBox;
var Check: TcheckBox;
     I: Integer;
begin
  for I := 0 to ComponentCount - 1 do
    if Components[i] is TCheckBox then
      begin
        Check := TCheckBox(Components[i]);
        Check.OnClick := nil;
        Check.Checked := False;
      end;
end;

Con esto logro que no se ejecute el OnClick, pero tengo entendido que debo de copiar el evento, como le puedo hacer para no tener que declarar 30 variables, uno para cada CheckBox.

Código Delphi [-]
procedure TfrmForma.LimpiarCheckBox;
var Check: TcheckBox;
     I: Integer;
     copiaEvento: TNotifyEvent;
begin
  for I := 0 to ComponentCount - 1 do
    if Components[i] is TCheckBox then
      begin
        Check := TCheckBox(Components[i]);
        copiaEvento := Check.OnClick  //aqui es donde no se como...
        Check.OnClick := nil;
        Check.Checked := False;
      end;
end;

para que despues de todas las validaciones que le hago al programa pueda voler a asignarle su evento a cada uno de ellos, algo asi.

Código Delphi [-]
procedure TfrmForma.LimpiarCheckBox;
var Check: TcheckBox;
     I: Integer;
begin
  for I := 0 to ComponentCount - 1 do
    if Components[i] is TCheckBox then
      begin
        Check := TCheckBox(Components[i]);
        Check.OnClick := copiaEvento   //y aqui regresarle su evento.
      end;
end;


Espero que me puedan ayudar y gracias por contestar.


Saludos.

Vicente López.
Responder Con Cita
 



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


La franja horaria es GMT +2. Ahora son las 02:16:58.


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