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 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,

Lo que quería decir (a ver si me sale ahora) es lo siguiente. Si yo no hago uso de la clase ("TCheckBox") interpuesta antes de la declaración del tipo del formulario, no puedo acceder a la propiedad "ClicksDisabled". Pero, como dije antes:

Cita:
Empezado por dec
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.
Si hago uso de la clase interpuesta tal y como proponías entonces puedo acceder a la propiedad "ClicksDisabled" sin problemas. Si ahora resulta que no es tanto porque se hiciera uso de la clase interpuesta, sino que se trata de lo que dices:

Cita:
Empezado por roman
Como en la unidad del formulario TCheckBox es un descendiente de StdCtrls.TCheckBox, tal propiedad puede accederse libremente.
... porque, según Delphi:

Cita:
Empezado por Ayuda de Delphi
Accessible to code in the unit(s) where the class and its descendants are defined.
Y sí, roman, ya sí puedo, como digo, hacer uso de la propiedad "ClicksDisabled", esto es, por lo que has comentado. Así que otra vez he vuelto a confundirme, puesto que no podía acceder a dicha propiedad no tanto por hacer o no hacer uso de la clase interpuesta, sino por lo que se refiere arriba que dice la ayuda de Delphi y tú transcribiste oportunamente.

(Esto si no es que puedo acceder a dicha propiedad precisamente por haber "redeclarado" la clase "TCheckBox", pues de otro modo acaso no fuera posible, de hecho no es posible si no lo hago así, como ya dije más arriba)
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 26-08-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Cuantas vueltas para explicar algo tan simple

ClicksDisabled esta declarado en la clase TButtonControl como una propiedad protected (protegida), por lo que sólo puede ser accedida desde la misma clase o sus descendientes.

Hay varias formas de poder acceder a ella

como lo hizo Lepe, creando un nuevo componente que agrega una nueva propiedad para poder modificarlo.

Como lo hizo roman, redefieniendo la clase y desabilitando directamente la propiedad, pero lo bueno es que no hay instalar ningún componente .

y ahora para resumir doy la mia

Código Delphi [-]
TCheckBox = class(StdCtrls.TCheckBox)
public
   property ClicksDisabled;
end;
simplemente hago pública la propiedad y ahora que cada uno la cambie a su antojo cuando quiera y como quiera, sin tener que instalar nada. Eso si debe estar antes de la declaración del formulario (igual que el de roman).

Si quieren crear un componente que ya lo tenga, para no tener que agregar este código en cada proyecto, cambian el public por published, cambian el nombre de la clase y lo registran.

Espero no haber liado más
__________________
[Crandel]
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
Cita:
Empezado por Crandel
Código Delphi [-]
TCheckBox = class(StdCtrls.TCheckBox)
public
   property ClicksDisabled;
end;
Je, je. Esto fue lo primero que pensé. Pero tiene un ligero inconveniente, al menos tomando en cuenta lo que originó este hilo.

Creo (porque el hilo es ya muy largo y no pretendo revisarlo desde el principio), que el deshabilitar los clicks se requiere para 30 checkboxes y de ahí que pensaron lo de un ciclo que los recorriera todos.

Haciendo que el constructor desactive los clicks se olvida uno del ciclo y de tener que hacerlo individualmente para cada control.

// 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,

Pues al comenzar este Hilo el tema era cómo deshabilitar el evento "OnClick" de un solo "TCheckBox"... porque cuando se cambiaba la propiedad "Checked" de este programáticamente se disparaba dicho evento "OnClick", sin que se pretendiera tal cosa... el objetivo era hacer lo dicho y poder después recuperar el evento "OnClick" también programáticamente...

¡La cosa se fue un tanto de madre! ¿Verdad?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 26-08-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
con esta cantidad de mensajes, de que estamos hablando? que queremos resolver?
__________________
[Crandel]
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,

Cita:
Empezado por Crandel
con esta cantidad de mensajes, de que estamos hablando? que queremos resolver?
Bueno... si aquello de que no hay libro malo (que dice Miguel de Cervantes) se puede aplicar a los Hilos de un foro, es de suponer que algo se saque en claro. Sin embargo a mí personalmente no me disgusta que se traten temas separados en Hilos separados. Creo que beneficia al conjunto de usuarios. ¡Y no digo más!
__________________
David Esperalta
www.decsoftutils.com
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 10:29:29.


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