|
Accediendo a propiedades ocultas
Copyright © 2000 Ernesto
De Spirito
Haciendo públicas propiedades protegidas
Algunos componentes tienen propiedades útiles, pero por alguna razón
han sido declaradas en su sección protected, de modo que
no son directamente accesibles por el programador.
Por ejemplo, TStringGrid, TDrawGrid, TDBGrid y
en general todos los descendientes de TCustomGrid tienen una
propiedad InplaceEditor que representa el cuadro de texto
usado para editar los valores de las celdas. Sin embargo, no puede
accederse a esta propiedad directamente puesto que ha sido declara
como protected.
La solución más fácil a este problema es subclasar (derivar) este
componente con el único propósito de publicar la propiedad protegida.
Por ejemplo:
type
TDBGridX = class(TDBGrid)
public
property InplaceEditor;
end;
Castando a la nueva clase
Como explicamos en otro artículo,
no es necesario instalar este nuevo componente, registrarlo en la
paleta de componentes ni sustituir los componentes de nuestras
aplicaciones (lo que sería demasiada molestia para una cosa tan
pequeña). En su lugar, cada vez que queramos acceder a esta propiedad,
podemos simplemente castar (convertir) el objeto (por
ejemplo DBGrid1) a nuestra nueva clase. Por ejemplo:
TDBGridX(DBGrid1).InplaceEditor.SelectAll;
Nota: InplaceEditor será nil hasta la
primera vez que EditorMode se establezca en True (ya
sea por código o cuando el usuario presione F2).
|