PDA

Ver la Versión Completa : Fila del DbGrid


Rabata
08-11-2004, 18:28:44
Como Puedo Saber la Fila en la k estoy en el DbGrid, y una vez k la sepa como puedo moverme hasta ella.....

Mi intencion es invalidar una fila a traves del valor de un campo ya que el IbTable se encuentra filtrado y cuando llamo al metodo refresh me quita la fila pero pierdo la fila en la k estaba y mi intencion es situarme en la siguiente fila a la q hemos filtrado


Gracias....

jhonny
08-11-2004, 18:41:09
Como Puedo Saber la Fila en la k estoy en el DbGrid, y una vez k la sepa como puedo moverme hasta ella.....jeje, con estas palabras me he confundido un poco, ¿Para que moverte hasta una fila en la que ya estas?.

Mi intencion es invalidar una fila a traves del valor de un campo ya que el IbTable se encuentra filtrado y cuando llamo al metodo refresh me quita la fila pero pierdo la fila en la k estaba y mi intencion es situarme en la siguiente fila a la q hemos filtradoEsto aclara un poco las cosas...

Si te entendi bien, podrias usar "Marcas de Libros" (BookMarks).


var
PrevRecord: TBookmark;
begin
PrevRecord := DataSet.GetBookmark;//Para capturar la posicion en la que estas
//...
//haces lo que tengas que hacer...
//...
if PrevRecord <> nil then
begin
DataSet.GoToBookmark(PrevRecord);//para volver a la posición
DataSet.FreeBookmark(PrevRecord);//Para liberar dicho espacio en memoria
end;
end;


Espero me entiendas y te sirva de algo...

Rabata
08-11-2004, 21:20:39
:cool: Gracias, Perfecto me hace lo k yo kiero

Pero vuelvo a la Pregunta inicial, mal planteada por mi parte :p


Mensaje Original:
Como Puedo Saber la Fila en la k estoy en el DbGrid, y una vez k la sepa como puedo moverme hasta ella.....


Mi Intención era Preguntar si puedo saber en un DbGrid en k Fila(Row) estoy k no sea atraves del Dataset, sino k algo me diga en k fila del dbgrid estoy y en caso de hacerme falta situarme en una fila que desee....


Gracias Otra Vez....

roman
08-11-2004, 22:18:13
Lo que pasa es que el DBGrid no te va a dar ninguna información útil al respecto.

Puedes acceder a las propiedades protegidas Row y RowCount del DBGrid mediante el truco:


type
THackGrid = class(TDBGrid);

...

THackGrid(DBGrid1).Row
THackGrid(DBGrid1).RowCount

pero el DBGrid únicamente mantiene unas cuantas filas (una más que las que ves en la pantalla) de manera que aun cuando tengas seleccionado en el grid el registro 84000, la propiedad Row te dará un número entre 1 y FilasVisibles y RowCount te dará FilasVisibles + 1.

// Saludos