[Lazarus-es] posicionar fila en grid en determinado registro

José Antonio Cuello josea en artextrading.com
Mar Abr 27 08:46:27 CEST 2010


El lun, 26-04-2010 a las 22:25 -0300, Maximiliano Duarte escribió: 
> Paola, se me hace q eso nunca va a funcionar ya q al cerrar el dataset y volverlo a abrir el conjunto cambio y la marca ya no es vida. Sugiero q hagas las modificaciones directamente sobre el dataset q apunta a la grilla y listo, cuando volves ya tenes el dato nuevo. Sino la otra es guardara clave primaria, cerrar, abrir y hacer locate. Si no entendes mañana t paso un ejemplo. Ahora esoty con el telefono

Hola, creo que tu afirmación no es correcta. El bookmark se calcula
según la posición del registro y si el mismo no ha sido cambiado sigue
siendo el mismo. Lo he estado probando y veo que no funciona porque al
asignarle de nuevo el bookmark al dataset no hace nada. Esto estaba
funcionando, llevo usando ese procedimiento desde hace muchos años,
cuando tenga un rato revisaré el código del free pascal y del Zeos. Me
da que pasa algo con el bookmark, pues hace una conversión de string a
puntero y algo no va al intentar situarse de nuevo.

Hacer la prueba siguiente y vereis como funciona. Se situa en el antiguo
registro.

vBookmark := Query1.Bookmark;
Query1.Close;
Query1.Open;
while (not Query1.Eof) and (Query1.Bookmark<>vBookmark) do
  Query1.Next;

De todas maneras también funciona con locate, sólo que te obliga a
depender del numero de campos de la clave primaria.

Un saludo.






More information about the Lazarus-es mailing list