Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-03-2011
jlrdz jlrdz is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 50
Poder: 14
jlrdz Va por buen camino
Desmarcar CheckBox sin ejecutar evento on Click

Saludos, tengo dos componentes un CheckBox y un Boton

Este es el codigo del CheckBox

Código Delphi [-]

//Código Checkbox
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
 if checkbox1.Checked=True then
 begin
  showmessage('Marcado!');
 end
 else
 begin
  showmessage('No marcado!');
 end;
end;


//Código Botón
procedure TForm1.Button1Click(Sender: TObject);
begin
CheckBox1.Checked:=False;
end;

Cuando doy click en el checkbox y se marca me muestra el mensaje de "Marcado", cuando no esta marcado pues se muestra el otro mensaje pero lo que quiero es que cuando yo pulse el Button1 me desmarque el CheckBox1 sin que me muestre el mensaje "No marcado", es decir sin que ejecute el evento de CheckBox1, sólo que me quite la marca, es posible esto y si es asi cómo se hace?

Gracias.
Responder Con Cita
  #2  
Antiguo 18-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
se me ocurre que podrias usar una variable logica definida previamente
que en principio sea true
y que cuando se active el botton le cambies el valor a false

ya en el Click del checkbox preguntar si la variables es False (osea que proviene desde el boton), no mostrar el mensaje..

me deje entener?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 18-03-2011
jlrdz jlrdz is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 50
Poder: 14
jlrdz Va por buen camino
Eso lo intenté, este ejemplo que puse es muy simple y eso me funciona pero en generalo lo puse para que viera que la idea era esa, en donde lo ocupo que no es este ejemplo es un script más largo donde intenté lo que oscarac pero tengo que editar mucho codigo que ya tengo escrito y pensé que existia alguna otra forma diferente de hacer eso.

gracias por la respuesta oscarac.
Responder Con Cita
  #4  
Antiguo 18-03-2011
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 jlrdz.

Una forma puede ser:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  CheckBox1.OnClick:= nil;
  CheckBox1.Checked:= False;
  CheckBox1.OnClick:= CheckBox1Click;
end;

Otra:
Código Delphi [-]
...
type
 TCheckBox = class(StdCtrls.TCheckBox);
  TForm1 = class(TForm)
    CheckBox1: TCheckBox;
  ...
implementation
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  CheckBox1.ClicksDisabled:= True;
  CheckBox1.Checked:= False;
  CheckBox1.ClicksDisabled:= False;
end;

Un saludo.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 18-03-2011 a las 19:20:12.
Responder Con Cita
  #5  
Antiguo 18-03-2011
jlrdz jlrdz is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 50
Poder: 14
jlrdz Va por buen camino
Justo lo que necesitaba!, gracias ecfisa, las dos maneras funciona.

Saludos y gracias nuevamente.
Responder Con Cita
  #6  
Antiguo 22-03-2011
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Código Delphi [-]

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
 if checkbox1.Checked then
 begin
  showmessage('Marcado!');
 end{si no lo usas para que lo pones
 else
 begin
  showmessage('No marcado!');
 end;}
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
  CheckBox1.Checked := Not CheckBox1.Checked;
end;
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #7  
Antiguo 22-03-2011
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
También puedes usar una variable intermedia que es lo que yo utilizo.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  OnEventTmp: TNotifyEvent;
begin
  OnEventTmp := CheckBox1.OnClick;
    CheckBox1.OnClick:= nil;
    CheckBox1.Checked:= False;
  CheckBox1.OnClick:= OnEventTmp;
end;
Un saludo.

P.D.: También, el componente que ha modificado y añadido una variable, es buena idea e incluso es más atractiva.
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
RadioGroup.ItemIndex y evento del click Livey Varios 2 23-08-2010 18:49:33
Asignar una funcion al evento on click abmicros Varios 4 12-11-2009 11:56:36
capturar click en checkbox manolop Varios 4 12-03-2007 23:37:36
Evento click de un datagrid Ivan_25 .NET 5 11-07-2006 16:03:08
Evento Doble Click en DBgrid enecumene Conexión con bases de datos 1 03-07-2006 07:15:42


La franja horaria es GMT +2. Ahora son las 05:52:48.


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