Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Como declarar DeleteRow de StringGrid (https://www.clubdelphi.com/foros/showthread.php?t=95296)

mRoman 20-07-2021 22:07:00

Como declarar DeleteRow de StringGrid
 
Hola amigos buenas tardes.

Trabajo Delphi6, FB 2.0, Win10.

Estoy investigando como borrar una linea de un StringGrid, he consultado estos links

https://stackoverflow.com/questions/...stringgrid-row
http://www.clubdelphi.com/foros/showthread.php?t=36452

Pero mis conocimientos en Delphi no son muy amplios, sinceramente no se donde declarar esto,...

Alguien me pudiera explicar como se debe hacer...o sea ahi lo explica lo q se debe hacer, pero donde? en un archivo .PAS nuevo? o que?.

Los leo.

Gracias por su tiempo compañeros.

Saludos.

ecfisa 20-07-2021 22:27:09

Hola.

Se trata de desproteger la clase TStringGrid para acceder a los métodos protegidos, por ejemplo:

Código Delphi [-]
...
interface

uses ..., Grids;

type
  TStringGrid = class( Grids.TStringGrid ); // clase desprotegida

  TForm1 = class( TForm )
    StringGrid1: TStringGrid;
    ...
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

...
begin
  StringGrid1.DeleteColumn( StringGrid1.Col ); // borra columna actual
  StringGrid1.DeleteRow( StringGrid1.Row ); // borra fila actual
end;

El las versiones de Delphi mas actuales deberás usar
Código Delphi [-]
...
uses ..., Vcl.Grids;

type
  TStringGrid = class( Vcl.Grids.TStringGrid );
...

Saludos :)

mRoman 20-07-2021 22:56:52

Cita:

Empezado por ecfisa (Mensaje 541955)
Hola.

Se trata de desproteger la clase TStringGrid para acceder a los métodos protegidos, por ejemplo:

Código Delphi [-]
...
interface

uses ..., Grids;

type
  TStringGrid = class( Grids.TStringGrid ); // clase desprotegida

  TForm1 = class( TForm )
    StringGrid1: TStringGrid;
    ...
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

...
begin
  StringGrid1.DeleteColumn( StringGrid1.Col ); // borra columna actual
  StringGrid1.DeleteRow( StringGrid1.Row ); // borra fila actual
end;

El las versiones de Delphi mas actuales deberás usar
Código Delphi [-]
...
uses ..., Vcl.Grids;

type
  TStringGrid = class( Vcl.Grids.TStringGrid );
...

Saludos :)

Gracias Daniel por contestar.

Entiendo lo que me comentas, pero debo abrir un nuevo FORM, UNIT...es que esa parte no me queda claro.

Gracias.

P:D. OK...ya hice las modificaciones y ya veo la propiedad DeleteRow.

manelb 21-07-2021 07:24:50

Referente a la solución que propone ecfisa, leí hace un tiempo un artículo de Ian Marteens propuesto por ElKurgan que hablaba sobre el tema: Clases Interpuestas

Me pareció muy interesante y lo he utilizado en algunas ocasiones.
Espero sea de interés refrescarlo.

Saludos


La franja horaria es GMT +2. Ahora son las 16:40:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi