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 12-07-2012
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Red face Focus en celda de un Grid hasta que....

Hola, no se donde colocar este hilo, si está mal disculpas al administrador.

Quisiera que cuando me coloco en una celda determinada en un grid y escribo un determinado valor, no poder salir de esa casilla donde acabo de escribir si no he pulsado la tecla Intro previamente.

El objetivo es que al modificar una determinada tupla o linea del grid, me interesa hacer recalculos del contenido completo del grid, y estos se ejecutan al evento OnKeyPress del grid cuando la Key es #13, de modo que si el usuario escribe un nuevo valor en una determinada fila columna del grid, si no pulsa Intro, no pueda salir de esa fila, columna.

Muchas gracias de antemano y feliz verano a todos.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
  #2  
Antiguo 12-07-2012
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
Cita:
Empezado por Cabanyaler Ver Mensaje
Hola, no se donde colocar este hilo, si está mal disculpas al administrador.
De "conexión con base de datos" está claro que no trata


A ver si alguien te echa una mano, puede que tengas que cambiar la "lógica" de lo que quieres hacer, porque seguramente tendrás que controlar en el 'onExit' y si se ha pulsado la tecla intro... no sé, lo veo engorroso de esa manera. Puede que sea más cómodo dejar que cambie de registro y en ese momento hacer los cálculos, independientemente de que haya sido con intro, flecha abajo, ratón, etc.
Responder Con Cita
  #3  
Antiguo 12-07-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.461
Poder: 21
newtron Va camino a la fama
Hola.

¿Estamos hablando de un DbGrid o de un StringGrid?
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 12-07-2012
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
Cita:
Empezado por newtron Ver Mensaje
¿Estamos hablando de un DbGrid o de un StringGrid?
Buen detalle
Responder Con Cita
  #5  
Antiguo 13-07-2012
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Es un DBGrid, gracias.
Voy a ir viendo de hacerlo según me indica Casimiro...., sobre todo con la posibilidad de capturar el evento del cambio de tupla, creo que así lo puedo hacer.
Ya cuelgo la solución cuando la tenga.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
  #6  
Antiguo 13-07-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.461
Poder: 21
newtron Va camino a la fama
Si lo que quieres es gestionar tipos de campo, longitudes, etc. esto que comentas puede ser una locura. En ese caso yo te recomendaría buscar un DbGrid de terceros que controle todo eso.
__________________
Be water my friend.
Responder Con Cita
  #7  
Antiguo 13-07-2012
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 Cabanyaler.

Una forma de detectar si hubo un cambio en algún campo de incumbencia al cambiar de registro puede ser:
Código Delphi [-]
...
implementation

var
  HasChanged: Boolean = False;

...

// Evento asignado a todos los campos que deberían provocan el recalculo
procedure TForm1.DataSetFieldChange(Sender: TField);
begin
  HasChanged:= True;
end;

// Verificar si se produjo un cambio
procedure TForm1.DataSetAfterScroll(DataSet: TDataSet);
begin
  if HasChanged then
  begin
    // Recalcular valores
    ...
  end;
  HasChanged:= False;
end;

...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 18-07-2012
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Si gracias a todos, el ejemplo que he seguido es el de ecfisa, aunque en mi código no me ha gustado del todo el resultado demasiado, además es cierto que para controlar todos los movimientos es un poco caos, por ejemplo a la hora de salir del grid con un movimiento de ratón en lugar de pulsando cualquier tecla.
En definitiva lo dejado sin control, de modo que el usuario deba por iniciativa prpia pulsar el intro para validar el valor del grid.
Quizá en software de terceros esto esté más facil de implementar o quizá en la versión DX2E, pero eso será más adelante.
Muchas gracias de nuevo a todos, un saludo y feliz verano (o invierno al cono sur).
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
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
Pintar Celda De Un Grid ElCherchu Varios 1 18-08-2007 16:33:57
Color de una celda de un Grid almacenado en BD Oxa78 OOP 1 22-09-2005 00:33:03
contenido de una celda del grid carlosmoralesm OOP 2 14-04-2004 20:11:41
Eventos en 1 celda de un grid cisterpe OOP 4 10-09-2003 13:08:00
Insertar SpeedButton en celda de Grid mosorio OOP 1 09-06-2003 17:20:42


La franja horaria es GMT +2. Ahora son las 11:54:32.


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