Ver Mensaje Individual
  #13  
Antiguo 23-02-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Catublipas
Cita:
Empezado por Catublipas Ver Mensaje
...
Uso Delphi xe7 ¿tiene algo que ver?
Por los motivos que te expuse no puedo asegurarlo, pero es una posibilidad.

Para salir de dudas, proba este ejemplo que funciona correctamente en Delphi 7:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, Menus, XPMan;

type
  TStringGrid = class(Grids.TStringGrid) //  class(Vcl.Grids.TStringGrid) para tu caso  
  private
    FBorde: Boolean;
  protected
    procedure Paint; override;
  public
    property Borde: Boolean read FBorde write FBorde default False;
  end;

  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    PopupMenu1: TPopupMenu;
    MenuItemBorde: TMenuItem;
    XPManifest1: TXPManifest;
    procedure FormCreate(Sender: TObject);
    procedure MenuItemBordeClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

{ TStringGrid }
procedure TStringGrid.Paint;
var
  R: TRect;
begin
  inherited;
  if not FBorde then
  begin
    R := CellRect(Col, Row);
    DrawFocusRect(Canvas.Handle, R);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  c, r: Integer;
  sg : TStringGrid;
begin
  sg := StringGrid1;
  // títulos de columnas y filas
  sg.Rows[0].CommaText := ',Col1,Col2,Col3,Col4,Col5';
  for r := 1 to sg.RowCount - 1 do
    sg.Cells[0, r] := Format('Fil%d',[r]);

  // algunos valores al StringGrid
  for c := sg.FixedCols to sg.ColCount - 1 do
    for r := sg.FixedRows to sg.RowCount - 1 do
      sg.Cells[c,r] := IntToStr(c+r);

  sg.PopupMenu := PopupMenu1;
  sg.Borde     := True; // StringGrid inicia con borde
end;

// PopupMenu-ItemBorde
procedure TForm1.MenuItemBordeClick(Sender: TObject);
const
  TXT: array[Boolean] of string = ('Poner borde', 'Quitar borde');
begin
  StringGrid1.Borde     := not StringGrid1.Borde;
  MenuItemBorde.Checked := StringGrid1.Borde;
  MenuItemBorde.Caption := TXT[StringGrid1.Borde];
  StringGrid1.Refresh;
end;

end.

Muestra:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-02-2016 a las 12:08:39.
Responder Con Cita