![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#10
|
||||
|
||||
|
Ok Andrés, aquí te va un pequeño relato
El señor Bor Land definió tres clases: Código:
TGrid = class private FRowHeight: Integer; protected RowHeight: Integer read FRowHeight write FRowHeight; public constructor Create; // Establece RowHeight a valor inicial end; TDbGrid = class(TGrid) end; TStringGrid = class(TGrid) private Font: TFont; public constructor Create; // crea Font destructor Destroy; override; // libera Font; // publica RowHeight (y la redefine) property RowHeight: Integer read GetHeight write SetHeight; Código:
function TStringGrid.GetRowHeight: Integer; begin Result := inherited RowHeight; end; procedure TStringGrid.SetRowHeight(Value: Integer); begin inherited RowHeight := Value; Font.Height := Value; end; La documentación nada dice acerca de Font pues es una propiedad privada que no interesa al público en general. Como DbGrid es una instancia de TDbGrid no posee el campo Font, así que ¿qué sucederá cuando nuestro protagonista escriba: TStringGrid(DbGrid).RowHeight := 60; ? ¡¡Una violación de acceso!! Y colorín colorado, este cuento se ha acabado // Saludos Última edición por roman fecha: 23-05-2003 a las 22:28:50. |
|
|
|