Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-09-2010
Livey Livey is offline
Miembro
 
Registrado: jul 2010
Ubicación: Costa Rica
Posts: 33
Poder: 0
Livey Va por buen camino
Algun motivo por el cual no se ejecute GetEditText, en un grid

Hola de nuevo
Estoy trabajando con Delphi 7, con un grid cuyas columnas son check, el cual se encuentra en un tabsheet, pero se me esta presentando el problema de que no ejecuta el evento GetEditText.
Me prodrian orientar a saber que puede afectar para que no se ejecute el evento, en el la forma como tal tengo keypreview en true, no se si eso puede ayudar en algo.
__________________
Keilly Livey Chinchilla Salas
Responder Con Cita
  #2  
Antiguo 01-09-2010
Livey Livey is offline
Miembro
 
Registrado: jul 2010
Ubicación: Costa Rica
Posts: 33
Poder: 0
Livey Va por buen camino
Cita:
Empezado por Livey Ver Mensaje
Hola de nuevo
Estoy trabajando con Delphi 7, con un grid cuyas columnas son check, el cual se encuentra en un tabsheet, pero se me esta presentando el problema de que no ejecuta el evento GetEditText.
Me prodrian orientar a saber que puede afectar para que no se ejecute el evento, en el la forma como tal tengo keypreview en true, no se si eso puede ayudar en algo.
Pregunto.
Acaso el evento no se ejecuta si las columnas son check?
Por que si la columna es para editar texto si se ejecuta.
__________________
Keilly Livey Chinchilla Salas
Responder Con Cita
  #3  
Antiguo 01-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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 Livey.

¿ Redefiniste el método en la clase TStringGrid para hacer pública la función ?

Código Delphi [-]
uses Grids;

type
  TStringGrid = class(Grids.TStringGrid)
  public
     function GetEditText(ACol,ARow: Longint):string; override;
  end;
 ....

implementation

function TStringGrid.GetEditText(ACol, ARow: Integer): string;
begin
  Result := InHerited GetEditText(ACol,ARow);
end;
...

Saludos.

Última edición por ecfisa fecha: 01-09-2010 a las 20:23:34.
Responder Con Cita
  #4  
Antiguo 01-09-2010
Livey Livey is offline
Miembro
 
Registrado: jul 2010
Ubicación: Costa Rica
Posts: 33
Poder: 0
Livey Va por buen camino
Recuerda que utilizo Delphi 7

gracias.
__________________
Keilly Livey Chinchilla Salas
Responder Con Cita
  #5  
Antiguo 01-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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
Cita:
Empezado por Livey Ver Mensaje
Recuerda que utilizo Delphi 7

gracias.
No lo sabía, pero no te preocupes... yo también

Dame un minuto y te pongo el ejemplo completo.
Responder Con Cita
  #6  
Antiguo 01-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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
Aca está.
Código Delphi [-]
unit Unit1;

interface

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

type
  TstringGrid = class(Grids.TStringGrid)
  public
    function GetEditText(ACol,ARow: Longint):string; override;
  end;

  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

{ TstringGrid }
function TstringGrid.GetEditText(ACol, ARow: Integer): string;
begin
  Result := Inherited GetEditText(ACol,ARow);
end;

{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.Cells[1,1]:= 'Prueba de GetEditText';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(StringGrid1.GetEditText(1,1));
end;
end.

Funciona perfecto (Delphi 7).

Saludos.
Responder Con Cita
  #7  
Antiguo 01-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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
Es más Livey, al ser GetEditText un método de la clase TCustomGrid, podés redefinir el método para cualquiera de sus descendientes...

Así podés hacer:
Código Delphi [-]
uses DBGrids;

type
 TDBGrid = class(DBGrids.TDBGrid)
  public
    function GetEditText(ACol,ARow: Longint):string; override;
  end;

 TForm1 = class(TForm)
    DBGrid1: TDBGrid;
 public
 private
 end;
....
implementation

function TDBGrid1.GetEditText(ACol, ARow: Integer): string;
begin
  Result := Inherited GetEditText(ACol,ARow);
end;
con el mismo resultado.


Saludos.

Última edición por ecfisa fecha: 01-09-2010 a las 21:41:57.
Responder Con Cita
  #8  
Antiguo 01-09-2010
Livey Livey is offline
Miembro
 
Registrado: jul 2010
Ubicación: Costa Rica
Posts: 33
Poder: 0
Livey Va por buen camino
Ok,
lo que no entiendo es porque no pasa por el evento GetEditText, cuando hago click en la columna.

Ahora esas columnas tienen la propiedad de que son check, por lo que no se ejecuta el GetTexEdit, pero si la columna es para editar texto si se ejecuta.
Quisiera me aclaran si al ser la columna tipo check, no ejecuta dicho evento.
Te explico lo que necesito es capturar lo que tiene la columna antes de que aplique el check, debido a que realizo algunas validaciones y dependiendo de eso aplica o no el check en la columna, entonces si la validación no permite aplicar el check, necesito que la columna regrese a su estado anterior para lo cual realizo lo siguente(o al menos asi lo solucioné):

Código Delphi [-]
procedure TFOrdenes.GrTipoMBeforeSelect(Sender: TObject; ACol,   ARow: Integer; var Continue: Boolean);
begin
    If not TMBCGrid(Sender).FromValDatos Then
       ValorAntes :=TMBCGrid(Sender).Cells[ACol,ARow]; 
end;

donde ValorAntes es el valor que toma la columna cuando la validación me retorna false, de manera que regresa al estado anterior.
En el Grid.OnvalidDato
Código Delphi [-]
Grid.Cells[ACol,ARow] :=ValorAntes;
__________________
Keilly Livey Chinchilla Salas

Última edición por Casimiro Notevi fecha: 01-09-2010 a las 23:41:17.
Responder Con Cita
  #9  
Antiguo 02-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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 Livey.


Ahora si !! GetEditText no es un evento... es una función.

El evento a que te referís es OnGetEditText... en ese caso la respuesta la dá la ayuda de Delphi:
"OnGetEditText does not occur unless the Options property includes goEditing"

Para tu propósito... ¿ No te sirve el evento OnSelectCell ?
Primero tiene que posicionarse, para despues aplicar el check...

Saludos.

Última edición por ecfisa fecha: 02-09-2010 a las 00:22:31.
Responder Con Cita
  #10  
Antiguo 02-09-2010
Livey Livey is offline
Miembro
 
Registrado: jul 2010
Ubicación: Costa Rica
Posts: 33
Poder: 0
Livey Va por buen camino
Tienes razon omiti el "On", disculpa.

Bueno yo lo solucione con OnBeforeSelect, y me funciona correctamente, para mi propósito.

Y muuuchas gracias por la ayuda.
__________________
Keilly Livey Chinchilla Salas
Responder Con Cita
  #11  
Antiguo 02-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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
De nada Livey, me alegro que lo solucionaras


Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mi Pc se cuelga sin motivo alguno kurono Windows 8 18-11-2008 03:34:38
Cual grid hace esto.. camc79 Conexión con bases de datos 4 18-03-2005 19:56:41


La franja horaria es GMT +2. Ahora son las 12:13:50.


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
Copyright 1996-2007 Club Delphi