¿Hay alguna forma de averiguar qué fila es la actual en una TDBGrid?Encontrar la fila actual en TDBGrid de Delphi
Respuesta
No estoy seguro si entiendo su pregunta, pero intentaré una respuesta y quizás pueda aclarar si esto no es lo que está preguntando.
Dado que un TDBGrid está vinculado a un DataSource, la fila actual es la misma que la fila actual en el origen de datos. Puede consultar DataSource, ya sea mirando un valor de clave principal o la propiedad RecNo para determinar qué registro es el actual.
Si no desea depender de la fuente de datos para proporcionar un recuento de registros y un registro actual (por ejemplo, porque está utilizando un cursor unidireccional en un servidor remoto), entonces la técnica de acceder a las propiedades de la control de rejilla subyacente se puede utilizar.
Consulte this answer para una pregunta similar sobre StackOverflow.
Comenzó a decir lo correcto, pero el enlace que indicó solo muestra cómo obtener el registro, pero el más importante (RecNo o Fila o CurrentRow, etc.) no se puede obtener directamente de la cuadrícula. Lo siento –
@Carlos: ¿Qué impide que escriba 'Row: = TDummyGrid (MyDBGrid) .Row' en lugar de' RowCount: = TDummyGrid (MyDBGrid) .RowCount'? Se requiere un poco de reflexión, ya sabes ... – mghie
Bueno ... Quiero mostrar colores alternativos en mi cuadrícula, pero la propiedad ROW no es "persistente" entre los cambios del cursor, es decir, si mueves el cursor arriba o abajo en la cuadrícula, cambiando la selección, la propiedad FILA cambia para TODAS las filas visibles al mismo tiempo. Necesito una manera de identificar cada línea individualmente, independientemente de la fila seleccionada actual. Ahora estoy usando el RecNo del conjunto de datos vinculado, pero en conjuntos de datos unidireccionales, esta propiedad es inútil. Como puede ver, SE REQUIERE UN POCO DE PENSAMIENTO, PERO USTED era el flojo. Lo siento ... –
Puede hacerlo de esta manera:
1 - Definir una clase local que es una copia de TDBGrid (esto le permitirá acceder a los métodos privados):
type
THackDBGrid = class(TDBGrid);
2 - A continuación, puede emitir a su clase definida localmente, y tire de los métodos privados como en:
function TfrmMain.GetFieldValue(colnum : integer): string;
begin
Result := THackDBGrid(grdMain).GetFieldValue(colnum);
end;
O, para obtener la fila #:
function CurrentRowNumber: integer;
Result := THackDBGrid(grdMain).Row;
end;
Esta técnica es útil en otras situaciones, también, pero no puedo reclamar el crédito. I got it from here.
- 1. Cómo modificar un valor de celda en Delphi TDBGrid
- 2. cómo mantener la fila actual en jqgrid
- 3. Resaltar fila actual en JTextPane
- 4. ¿Cómo eliminar la fila actual de la tabla en jQuery?
- 5. ¿Cómo obtener la fila de la tabla de arriba (o antes) mi fila actual en jQuery?
- 6. Contando las filas en un TDbGrid
- 7. sql tirando de una fila para la fila siguiente o anterior de una fila actual
- 8. Recuperar el índice de la fila de la tabla de la fila actual
- 9. Asp.Net GridView obtener fila actual en TemplateField
- 10. ¿Cómo puedo encontrar el servidor DNS actual?
- 11. PHP while loop encontrar la última fila
- 12. Cómo encontrar el control activo anterior: Delphi
- 13. Implementación limpia de almacenar el índice de la fila actual
- 14. Devuelve los valores de la fila anterior a la fila actual
- 15. ¿Cómo encontrar la posición de traducción actual en Canvas?
- 16. Usando JQuery para encontrar la siguiente fila de la tabla
- 17. Cómo encontrar una fila específica en csv
- 18. Agregar nueva fila de tabla después de la fila actual usando jQuery
- 19. Cómo eliminar la fila actual con el plugin jquery datatable
- 20. Obtener número de fila actual en el interior ArrayFormula
- 21. ¿Cómo encontrar la Id. De fila de datagridview, dado un valor de fila?
- 22. Buscar campos de entrada en la fila de la tabla actual con la clase
- 23. SqlDataReader - ¿Cómo convertir la fila actual a un diccionario
- 24. Jugar Framework 2.0 Encontrar la acción actual en una vista
- 25. Quiero encontrar la ubicación actual del usuario en php
- 26. Regsvr32 no puede encontrar el dll en la carpeta actual
- 27. ¿Dónde puedo encontrar información sobre la estructura de Delphi VMT?
- 28. MySQL encontrar la fila a través de otra mesa
- 29. ¿Cómo encontrar el nivel de transacción actual?
- 30. ¿Cómo encontrar qué rama seguimiento de la rama actual
Creo que debe aclarar un poco su pregunta, ¿quiere decir la fila en la consulta o la fila en el DBGrid? –