Cita:
Empezado por Catublipas
Buenas ecfisa,
me ha funcionado al parecer me faltaba incorporar la libreria Vcl.grids, ya no me da el error pero no me quita el borde.
Es posible que sea porque el StringGrid lo he creado en tiempo de diseño, o ¿no tiene nada que ver?
Muchas gracias de veras por vuestra ayuda de nuevo!
|
No me parece... controla que la declaración:
Código Delphi
[-]
type
TStringGrid = class(Vcl.Grids.TStringGrid)
...
preceda (esté mas arriba) a la definición de la variable de tipo
TStringGrid que uses en el formulario.
Otra opción es que hagas una nueva unidad,
Código Delphi
[-]
unit Unit2;
interface
uses Windows, Types, Grids;
type
TStringGrid = class(Grids.TStringGrid) private
FBorde: Boolean;
protected
procedure Paint; override;
public
property Borde: Boolean read FBorde write FBorde default False;
end;
implementation
procedure TStringGrid.Paint;
var
R: TRect;
begin
inherited;
if not FBorde then
begin
R := CellRect(Col, Row);
DrawFocusRect(Canvas.Handle, R);
end;
end;
end.
y luego en el formulario en que la vayas a usar la incluyas en la
última posición en el uses de la sección interface:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, Grids, Unit2;
type
TEmpresasForm = class(TForm)
...
Nota: Para todos los casos toma en cuenta las diferencias que tiene Delphi XE7 con Delphi 7 cuando se hace referencia a las unidades y clases, vg.:
Código:
Delphi 7 : Grids.TStringGrid
Delphi XE7 : Vcl.Grids.TStringGrid
Saludos