Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-07-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 17
radge Va por buen camino
DBGrid

Buenas tengo un dbgrid , con unos 100 registros , y en el evento "onCellChanged" hago una serie de instrucciones.

Cuando termino el dbgrid se refresca y pòr lo tanto el puntero vuelve arriba del todo , cuando tienes 3 o 4 registros no pasa nada pero cuando tienes más de 50 si.


Habria alguna forma de que se quede en el ultimo puntero seleccionado ? o en el siguiente ?

salu2 radge
Responder Con Cita
  #2  
Antiguo 03-07-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
antes del refresh quedate con la clave del registro en el que estes y luego realiza el refresh y después haz un locate con la clave que habías guardado

Saludos, Tony
Responder Con Cita
  #3  
Antiguo 03-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola, lo mas interesante seria que no movieses el puntero con las instrucciones del OnCellChanged. Si no puedes evitarlo, entonces puedes probar de salvar algun dato identificador del registro actual antes de esas instrucciones y luego mediante un locate recolocarlo. Podrias tambien colocar DBGrid.DataSource = nil y luego restaurar la original, por tal de no ver el puntero moviendose por pantalla. Todo y eso, la opcion de no mover el puntero es la mejor y mas limpia. Saludos.
Responder Con Cita
  #4  
Antiguo 03-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola radge, lo que yo haría es crearme un marcador para almacenar la posición actual del registro y despues restaurar a esta posición, esto se hace con un BookMark.

Código Delphi [-]
var
 Marca : TBookMarkStr;
begin
 Marca := Query1.Bookmark; //Creamos la marca del registro actual
 ........ 
 //hacemos todas nuestras operaciones
 ........
 Query1.Bookmark := Marca; //restauramos a la posición del registro que tiene la marca

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 03-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por coso Ver Mensaje
Podrias tambien colocar DBGrid.DataSource = nil y luego restaurar la original, por tal de no ver el puntero moviendose por pantalla.
A parte de lo que te dice el amigo coso, sino quieres ver el puntero moviendose, también lo puedes con:

Código Delphi [-]
 Query1.DisableControls; //desactivamos nuestros controles asociados a nuestro DataSet
 //hacemos nuestras operaciones
 Query1.EnableControls; //Volvemos a activar dichos controles

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 03-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
vaya gracias caro, desconocia esas funciones
Responder Con Cita
  #7  
Antiguo 03-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
No es nada amigo coso, me alegra que te haya servido .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 03-07-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 17
radge Va por buen camino
Gracias !!! Es perfecto !!! Lo del bookmark me ha ido de perlas muchas gracias.

Pero una pregunta , imaginaros que tengo el dbgrid con 10 registros , con un check los marco y van desapareciendo , a la que desmarco el último al intentar recuperar el bookmark me falla , normal.

Como podria solucionar lo ? Porque no devuelve un integer.

salu2 radge
Responder Con Cita
  #9  
Antiguo 03-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Código Delphi [-]
...
if marca = nil then exit;
...
Responder Con Cita
  #10  
Antiguo 03-07-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 17
radge Va por buen camino
Cita:
Empezado por coso Ver Mensaje
Código Delphi [-]
...
if marca = nil then exit;
...


[Error] SupVision.pas(210): Incompatible types: 'String' and 'Pointer'
Responder Con Cita
  #11  
Antiguo 03-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
ah, pues marca = ''
Responder Con Cita
  #12  
Antiguo 03-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
o if recordcount = 0 ...
Responder Con Cita
  #13  
Antiguo 04-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Holas, TBookMarkStr es una cadena que tiene el valor del BookMark del DataSet, por lo que no estará vacío cuando hagas el borrado, ademas según la ayuda el formato depende del tipo del DataSet. Talvez sea mejor que manejes una banderita y la activas cuando tu DataSet este con estado dsInsert o dsEdit y solo actualizas la marca cuando tu banderita este activa.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #14  
Antiguo 08-07-2008
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Gracias caro por el dato, Yo queria hacer eso, pero no daba con el tipo de variable que definia y por ese motivo no me funcionaba.
Gracias nuevamente.
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
tomar una fila de un DBGrid y traspasarlo a otro DBGrid micky mouse Varios 2 05-06-2008 16:24:18
Pasar lineas de in dbgrid a otro dbgrid look OOP 3 21-09-2007 23:16:29
PickList DBGrid (Pregunta acerca de los DBGRID) lazarous Varios 1 10-01-2006 09:53:12
Como extraer datos de un DBgrid a otro DBgrid mickey Conexión con bases de datos 13 29-01-2004 05:05:30


La franja horaria es GMT +2. Ahora son las 23:05:00.


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