Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Posicion de un registro en un DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=15512)

VRO 26-10-2004 10:11:19

Posicion de un registro en un DBGrid
 
Hola, mi pregunta e la siguiente,

¿Hay alguna forma de saber cual es el numero de la fila en que se encuentra un registro de terminado?, lo necesito para una vez ínsertado un registro en el foco del DBgrid se situe en ese ultimo insertado, sería facil si el dataset que rige el dbgrid no estuviera ordenado por numero ya que me posicionaría en el último registro.

¿Seria una forma similar al TTreeView?, en el cual me posiciono siempre en el nodo padre y hago de la sguiente forma
Código Delphi [-]
  posicion:=TTreview.parent.AbsolutedIndex;
  TTreeView.selected:=TTreeView.Items.Item[posicion];

No se sai me habre explicado con claridad.

Gracias por si rartito de atención.

Investment 26-10-2004 10:26:28

Creo que te estas complicando un poco la vida:

Si al terminar de insertar haces un locate sobre el valor del ultimo insertado ya estras posicionado en el ultimo registro insertado

Código:

  Tabla.locate('CampoClave',ValorCampoClave_DelUltimoInsertado,[locaseinsensitive])

Neftali [Germán.Estévez] 26-10-2004 10:49:12

Otra opción que puedes probar son Bookmarks; Antes de insertar añade uno y después de insertar recuperalo y avanza; De todas formas no lo he probado y depende de si el sistema que estés utilizando los soporta.

VRO 26-10-2004 12:22:44

gracias por vuestras repuestas, con el locate ya habia probado, pero lo que me pasa es que en el DBgrid no me aparece seleccionado el ultimo que he insertado sino el primero del DBgrid, lo hago con DBgrid.setfocus;, se supone ó eso cre yo que si hago el locate y luego pongo el foco en la rejilla tendría que seleccionar el registro del que he hecho al locate.

Neftali [Germán.Estévez] 26-10-2004 12:59:18

Deberías "refrescar" el Grid antes de hacer un Locate, ya que el Locate va sobre la tabla y el Grid debe estar actualizado con respecto a ella. Otra cosa, asegurate de que el Locate te devuelve TRUE.

VRO 26-10-2004 16:47:26

esta hecho el refresh y el LOCATE tambien esta a true pero no consiguo que me seleccione la fila el registro que se encuentra con el locate en el dbgrid.

VRO 27-10-2004 10:22:57

problema solucionado
 
Ya encontre la solucion, el locate estaba a tru pero no me seleccionaba la fila porque, en vez de hacer el refresh yo lo que hago es cargar los datos que quiero mostrar de nuevo ya que con el refresh no me va muy bien, entonces lo que me pasaba es que les cargo y hago el locate y cuando salgo de ese formulario los volvía a cargar.

Muchas gracias por su ayuda a los foreros del club delphi


La franja horaria es GMT +2. Ahora son las 17:39:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi