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 06-12-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 6
ArtPortEsp Va por buen camino
Cursor en una celda dbgrid

Buen dia amigos;

espero se encuentren bien; estoy buscando alguna forma para que al editar el contenido de una celda en un dbgrid, el cursor de edición vaya hasta la posición inicial del texto y no se seleccione todo el contenido de la celda.

He estado buscando en la red, pero hasta el momento no he tenido suerte; alguno de uds. lo ha hecho o conoce algún lugar en donde pueda buscar?

Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 06-12-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Esto no te sirvió?
Responder Con Cita
  #3  
Antiguo 06-12-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 6
ArtPortEsp Va por buen camino
trate de ponerlo en diferentes eventos: Oncellclick; BeforePost, etc. y no, no pude lograrlo con ese código, hace lo mismo, al editar una celda selecciona todo el contenido y el cursor se sitúa al final
Responder Con Cita
  #4  
Antiguo 06-12-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
He hecho una sencilla prueba y funciona bien poniendo el código en el "CellClick" del dbgrid:
Código Delphi [-]
DBGrid1.EditorMode:= True;
DBGrid1.Perform(EM_SCROLLCARET, 0, 0);
Responder Con Cita
  #5  
Antiguo 06-12-2021
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.

Intenta también con lo siguiente en el evento OnCellClick:
Código Delphi [-]
type
  TDBGridEx = class(TDbGrid);

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  DBGrid1.EditorMode := True;
  TDBGridEx(DBGrid1).InplaceEditor.SelStart := 0;
  TDBGridEx(DBGrid1).InplaceEditor.SelLength := 0;
end;

Salida:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 06-12-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 6
ArtPortEsp Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
He hecho una sencilla prueba y funciona bien poniendo el código en el "CellClick" del dbgrid:
Código Delphi [-]
DBGrid1.EditorMode:= True;
DBGrid1.Perform(EM_SCROLLCARET, 0, 0);
Es correcto, si quita la selección, pero sigue dejando el cursor al final del texto
Responder Con Cita
  #7  
Antiguo 06-12-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 6
ArtPortEsp Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Intenta también con lo siguiente en el evento OnCellClick:
[delphi]

type
TDBGridEx = class(TDbGrid);
Tengo problemas con esta linea, mi Grid se llama GridIncisos y esta declarado asi:

Gridincisos: TCRDBGrid;
Responder Con Cita
  #8  
Antiguo 06-12-2021
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 ArtPortEsp Ver Mensaje
Tengo problemas con esta linea, mi Grid se llama GridIncisos y esta declarado asi:

Gridincisos: TCRDBGrid;
Hola.

¿ La clase del grid no es TDBGrid ?

Saludos

Edito: veo que es un componente de Devart...
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 06-12-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 6
ArtPortEsp Va por buen camino
No es de devart, es un componente algo viejo, el desarrollo esta en Delphi 7.
Responder Con Cita
  #10  
Antiguo 06-12-2021
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 de nuevo.

No siendo un componente estandar no sé si funcione, pero por las dudas, intenta:
Código Delphi [-]
type
  TDBGridEx = class(TCRDBGrid);
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 06-12-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 6
ArtPortEsp Va por buen camino
Vale, intente algo semejante, pero creo que estoy poniendo esas líneas en donde no es.

Si pongo la declaración : TDBGridEx = class(TCRDBGrid); en la sección Type de la unidad, el compilador me regresa un error por el signo "="

Si cambio el signo "=" por ":" el mensaje que me sale es sobre si quiero quitar la declaración por que no hay un componente asociado a ella.

Si la pongo en el evento :

Código:
procedure TFcappol.GridincisosCellClick(Column: TColumn);
type  xgrid = class(TCRDBGRid);
begin
     Gridincisos.EditorMode := True;
Me manda un error que dice : Local class : interface or object types not allowed

EDITO : finalmente pude pensar con claridad atraves de este maldito virus que me trae mal, ya funciono!, muchas, pero de verdad muchas gracias!

Última edición por ArtPortEsp fecha: 06-12-2021 a las 21:57:17.
Responder Con Cita
  #12  
Antiguo 06-12-2021
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.

No sé que solución encontraste pero otra opción que probé con TDBGrid y funciona ante el evento OnCellClick es:
Código Delphi [-]
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  DBGrid1.EditorMode:= True;
  keybd_event(VK_HOME, 0, 0, 0);
  keybd_event(VK_HOME, 0, KEYEVENTF_KEYUP, 0);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Cómo posicionar el cursor al final del texto de una celda de un dbgrid Casimiro Notevi API de Windows 6 02-12-2021 20:58:38
Seleccion multiple en DBGrid con cursor valeria Conexión con bases de datos 3 24-07-2010 09:16:10
Mover el cursor de DBGrid.... armadillo OOP 1 05-04-2006 13:42:48
dbgrid y direccion del cursor jgutti Varios 3 14-05-2005 22:28:43
Como Pintar Solo la Celda y No Toda la Columna de la Celda de un dbGrid?? AGAG4 Varios 11 15-11-2004 20:53:28


La franja horaria es GMT +2. Ahora son las 04:29:05.


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