Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-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
Angry

Que tal Lepe, pues te cuento que todavia no he probado la unidad, porque estoy algon intrigado con esto.


te cuento, es te es el procedimiento que me inhabilita los clicks de los checkBox...

Código Delphi [-]
procedure TfrmExpediente.LimpiarCheckBox; //Limpia los checkBox y Deshabilita el click...
var
Check: TcheckBox;
I, j: Integer;
begin
j := 0;
for I := 0 to ComponentCount - 1 do
if Components[i] is TCheckBox then 
begin
Check := TCheckBox(Components[i]);
inc(j);
CopiarEvento[j] := Check.OnClick;
Check.OnClick := nil;
Check.Checked := False;
Check.Enabled := True;
end;
end;

despues de que mando llamar este procedimiento, me dispongo a marcar los check Box que deben estar prendido segun unas condiciones, tomadas de una sentencia que ejecuto, pero ahora resulta que la sentencia me arroja 0 resultados, esta muy raro, ¿no cree?, ¿que podra estar sucediendo? .

Edito:
Ya instale la unidad, ya realize unas pruebas y no le entiendo, se supone que me deshabilita los click's ¿cierto?, este es el código que puse.

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

y después pongo CheckBoxNoClick1.Checked := True; y si me ejecuta el click.

Saludos.

Última edición por Chente(rMan) fecha: 25-08-2005 a las 22:51:52.
Responder Con Cita
  #2  
Antiguo 25-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
Talking

que tal, creo que al fin quedo solucionado, muy bueno por cierto, encontre este artículo.


http://www.delphi3000.com/articles/a...sp?SK=checkbox




Saludos.

Vicente López.
Responder Con Cita
  #3  
Antiguo 26-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Vaya que hay gente complicada!

En el formulario donde uses tus CheckBox coloca esto antes de la declaración del formulario:


Código Delphi [-]
type
  TCheckBox = class(StdCtrls.TCheckBox)
  public
    constructor Create(AOwner: TComponent); override;
  end;

e implementa este constructor así:


Código Delphi [-]
constructor TCheckBox.Create(AOwner: TComponent);
begin
  inherited;
  ClicksDisabled := true;
end;

Eso es todo. Los CheckBox no dispararán el evento OnClick cuando se asigne Checked por código.

// Saludos
Responder Con Cita
  #4  
Antiguo 26-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Una pregunta obligada, si se sigue el tema de este Hilo desde un principio: ¿cómo podría volverse a habilitar el Click programáticamente según tu propuesta roman? Tal vez ya no tenga mucho sentido hacerlo, puesto que no se quiera, pero, repito que sigo en la pregunta el tema de este Hilo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 26-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por dec
¿cómo podría volverse a habilitar el Click programáticamente según tu propuesta roman?
CheckBox1.ClicksDisabled := false;

// Saludos
Responder Con Cita
  #6  
Antiguo 26-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Hombre, roman, si preguntaba es porque esa instrucción que refieres no me funciona (no sé porqué)...

Me dice aquello de "Undeclared identifier: 'ClicksDisabled'"...

Actualización: Está bien. Si hago uso de la interposición de la clase "TCheckBox" entonces no hay problema en usar la instrucción de marras.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 26-08-2005 a las 02:27:04. Razón: (actualización)
Responder Con Cita
  #7  
Antiguo 26-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por dec
Está bien. Si hago uso de la interposición de la clase "TCheckBox" entonces no hay problema en usar la instrucción de marras.
¿Interposición? ¿Qué es eso?

ClicksDisabled es una propiedad protegida en TCheckBox, pero recordemos la accesibilidad de propiedades y métodos protegidos:

Cita:
Empezado por Delphi
Accessible to code in the unit(s) where the class and its descendants are defined.
Como en la unidad del formulario TCheckBox es un descendiente de StdCtrls.TCheckBox, tal propiedad puede accederse libremente.

// Saludos
Responder Con Cita
  #8  
Antiguo 26-08-2005
Avatar de Ohcan
[Ohcan] Ohcan is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: Madrid (España)
Posts: 119
Poder: 22
Ohcan Va por buen camino
Artículo

Vaya, precisamente ayer estuve leyendo un artículo de Ian Marteens sobre Clases Interpuestas:
http://www.marteens.com/trick46.htm
Aquí os dejo el link.

Saludos.
__________________
La violencia es el último recurso del incompetente. (Salvor Hardin)
Responder Con Cita
  #9  
Antiguo 26-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Vaya, me descuido un poco y se monta un pollo

En El Checkbox que yo propuse, para hacer que se dispare el Onclick por código, usamos Checkbox.Checked := true /false

Cuando no queremos que se dispare el evento, simplemente usamos checkbox.SetChecked(true/false)

Y no tiene más historia.

Un saludo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 03:21:18.


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