Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 02-06-2003
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
Bueno pues, ya si nos vamos a estos extremos, la forma verdaderamente correcta es:
Código:
unit UPGrid;

interface

uses
  Classes, DBGrids;

type
  TUPGrid = class(TDBGrid)
  public
    property Col;
    property Row;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('BDE', [TUPGrid]);
end;

end.
Y ya con la nueva componente en la paleta utilizar ésta en lugar de la original DBGrid.

El hecho de que en una misma unidad puedan accederse a las propiedades privadas y protegidas de otra clase (lo que habilita el truco) se debe a la forma en que Delphi implementa las clases amigas que tienen otros lenguajes como C++.

En el truco original le estamos diciendo al compilador que TUPGrid es una clase amiga de TCustomGrid y después le hacemos creer que DBGrid es de dicha clase amiga.

Pero este truco es completamente válido como lo demuestra el hecho de que podamos derivar un componente e instalarlo en la paleta.

Aquí la disyunción sería la siguiente:

Si vamos a utilizar estas propiedades protegidas (Row y Col) una sóla vez entonces lo más adecuado es el truco; pero si vamos a estar utilizándolas regularmente lo mejor es derivar la componente e instalarla.

// Saludos
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 04:47: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