Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Obtener texto en DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=58649)

ecfisa 27-07-2008 17:36:11

Obtener texto en DBGrid
 
Hola a todos, estoy trabado con un tema.
No encuentro propiedad o método que me permita obtener el texto ingresado en una celda de un DBGrid.

Algo así como con el DBEdit cuando interceptamos el evento OnSetText y obtenemos lo escrito en DBEdit.Text .

Ví, revisando en el foro un ejemplo con la propiedad protegida InPlaceEdit, redefiniendo la clase; pero esto no funciona al menos en delphi 7, puesto que me dice que dicha propiedad no existe en la clase base.

Muchas gracias por cualquier información.

marcoszorrilla 27-07-2008 18:26:08

Prueba esto, a mi me funciona:

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls;

type TDBGridPlus = Class(TDBGrid)
public
function GetEditText(ACol, ARow: Longint): string; override;
end;

type
  TForm1 = class(TForm)

    DataSource1: TDataSource;
    Table1: TTable;
    DBGrid1: TDBGrid;
    Label1: TLabel;
    procedure DBGrid1CellClick(Column: TColumn);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


Function TDBGridPlus.GetEditText(ACol, ARow: Longint): string;
Begin
Result := InHerited GetEditText(ACol,ARow);
End;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
Label1.Caption := TDBGridPlus(DBGrid1).GetEditText(3,3);
end;

end.


Un Saludo.

ecfisa 27-07-2008 22:02:16

Gracias
 
Muchas gracias por tu pronta respuesta, estoy probando tu ejemplo Marcos, luego te comento la implementación.

ecfisa 16-08-2008 20:16:22

funciona
 
Si funciona, tuve que trabajar un poco con la detección de teclas per funciona bien, gracias

mongiel 07-07-2010 17:45:58

Que tal Ecfisa, me gustaria ver si me puedes hacer favor de ayudar en como resolviste el problema de encontrar las celdas y pasar los parametros en automatico en la funcion TDBGridPlus(DBGrid1).GetEditText(Colum,Fila);

Saludos.

ecfisa 07-07-2010 21:49:09

Hola mongiel.

En realidad, tuve que hacer un poco de memoria sobre el caso...:)

No tuve necesidad de encontrar automáticamente fila y columna aquella vez,
pero probé un poco y este código parece funcionar:
Código:

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  ShowMessage(TDBGridPlus(DBGrid1).GetEditText(Column.Index+1,Query1.RecNo));
end;

Nota: La columna la extraigo del parámetro 'Column' y la fila del registro seleccionado.

Saludos.

mongiel 08-07-2010 16:34:42

Si funciono!!
 
Muchas gracias Ecfisa!! me funciono muy bien y nuevamente muchisimas gracias me sacaste de un gran apuro.


La franja horaria es GMT +2. Ahora son las 18:16:03.

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