PDA

Ver la Versión Completa : como hacceder a un dbGrid como si fuese una matriz[i,j]


orfeo
27-05-2003, 04:52:48
Hola, nesecito recorrer una dbGrid como una matriz[i,j].
Similar a un Tstringgrid.cells[i,j], he logrado acceder a las columnas con tdbgrid.columns[i], pero luego no logro accder por fila.
La verdad es que he mirrado metodo por metodo, y no he logrado encontar un acceso por fila.

Lo que nesecito es leerla, por lo tanto si conocen alguna manera de pasar los datos de un dbgrid a un TSstringGrid, ami me alcanza.

marcoszorrilla
27-05-2003, 08:10:15
Récupérer la valeur d'une Dbgrid

Le plus simple serait biensur d'attaquer le champ de al table ou la Query rattaché a cette DBgrid.
Mais voici une autre solution :

Il faut tout d'abord rendre publique une méthode du TDBGrid qui est privée à l'origine.
Pour ce faire, tu crées un nouveau type

Type TDBGridPlus = Class(TDBGrid)
Public
function GetEditText(ACol, ARow: Longint): string; override;
End;

Function TDBGridPlus.GetEditText(ACol, ARow: Longint): string;
Begin
Result := InHerited GetEditText(ACol,ARow);
End;



Un Saludo

roman
27-05-2003, 16:55:13
¿Estamos cambiando el idioma del foro?

No entendí nada :(

marcoszorrilla
27-05-2003, 17:15:28
Hola Roman:

Ha sido un evento consuetudinario, que acontece por mor de hallarme laborando por lo que utilicé el método copiar y pegar, al carecer de tiempo para proceder a la oportuna traducción, entendiendo que el código hablaba por si mismo y más valía código en mano que nada.

Como quiera que el ejemplo fue obtenido en tiempo y forma de un sitio francés, de ahí el vocabulario latino, pero no ibérico.

Antes de dirigirme al tálamo si tengo tiempo prometo pasarlo a la lengua de Cervantes, Sábato, Borges, Vargas LLosa y otros.

Un genuflexo saludo desde España.

roman
27-05-2003, 17:22:54
Realmente creo que te hace falta un poco de descanso :p

Anda a la meme que estas algodón azotado :D

// Saludos

pd: Sinceramente aplaudo tu originalidad!

__cadetill
27-05-2003, 17:36:33
Pos na, vamos a ahorrarle trabajo a Marcos y aqui teneis la traduccion :)


Lo mas sencillo seria atacar al campo de la tabla o de la query ligada al DbGrid.
Pero aqui tienen otra solucion

Hace falta hacer publico un metodo del TDbGrid que en el origen es privado.
Para hacerlo, hay que crear un nuevo type

Type TDBGridPlus = Class(TDBGrid)
Public
function GetEditText(ACol, ARow: Longint): string; override;
End;

Function TDBGridPlus.GetEditText(ACol, ARow: Longint): string;
Begin
Result := InHerited GetEditText(ACol,ARow);
End;

Pues nada, espero que la traduccion sirva

marcoszorrilla
27-05-2003, 19:54:53
Bueno pues aquí estoy apunto de comenzar el tramo final de la jornada, y me encuentro con que el amigo Cadetill ha tenido a bien conducir las palabras galas al lado de acá del Pirineo.

La traducción es "impecable", por lo que por mi parte doy el tema por terminado.

Así podré ir a la cama sin hacer escala en el ordenador.

Je suis Hypercontent.

Perdón quiero decir que estoy muy contento.

Un Saludo.

orfeo
28-05-2003, 03:53:43
Bueno, al prencipio (3 lines ) no sabia si Marcos, me estaba gastando (acostumbo a escrivir, y comerme letras), me hizo dudar por 1/2 segundo....

Aunque codigo se auto explica, solo hasta me di cuenta que convierte un metodo pribado en publico :), me falta mucho de POO en delphi.

Lo voy a probar, y les cuento