Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   saber que fila del dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=57882)

gesjug 01-07-2008 11:59:16

saber que fila del dbgrid
 
Veran, yo lo que hago es mostrar un form con ciertos datos, lo que necesito es sacar ese form en una posicion distinta dependiendo de que fila este seleccionada en un dbgrid.
Hay alguna forma de saber las coordenadas de la fila que esta seleccionada en el dbgrid? o si no hay forma.. como puedo saber cual es la fila que esta seleccionada?? el indice o algo.

Muchas gracias

Caro 01-07-2008 12:56:49

Hola gesjug, con la propiedad RecNo puedes saber la posicón del registro activo en tu DatSet.

Código Delphi [-]
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
 showmessage(IntToSTr(Query1.RecNo));
end;

Saluditos

gesjug 01-07-2008 17:06:09

hola Caro:

He probado eso pero no me sirve, yo tengo un dbgrid y lo que pasa es que saco un formulario nuevo a modo de ventana al picar en la fila, necesito saber las coordenadas o la posicion de esa fila para poder desplegar el form y que no me tape esa fila, no se si me explico.

Un saludo

Caro 01-07-2008 17:48:00

Hola de nuevo gesjug, entonces lo podemos hacer en el evento OnMouseUp, obteniendo primero las coordenadas del dbGrid en cuestion y le sumamos la coordenada Y de la fila seleccionada de tu DBGrid, al principio pense que se podría hacer con la función MouseCoord del dbGrid, pero no, eso te devuelve la fila y columna que ha sido seleccionada.

Código Delphi [-]
procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Form1.Top := DBGrid1.ClientOrigin.Y + Y;
 Form1.Left := DBGrid1.ClientOrigin.X;
 Form1.Show;
end;

Saluditos

chass 02-07-2008 14:49:20

otra pregunta
 
to tengo un dbgrid y al hacer click en una de sus fila quiero saber cual es..
*-------------------------*
|campo1 | campo2|campo3|
+-------------------------+
|campo4 | campo5|campo6|
+-------------------------+
|campo7 | campo8|campo9|
+-------------------------+
tengo la presente tabla "tabla1" y yo selecciono una de sus fila, por ejemplo la fila 0 que contiene 3 campos |campo1 | campo2|campo3| y mi pregunta es como hacer que me lanze en showmessage(); con el numero de fila de este:confused:

Caro 02-07-2008 16:02:00

Hola chass, hay dos formas de obtener la fila, con la propiedad RecNo de tu DataSet como decía arriba o con la función MouseCoord de tu DBGrid.

Con RecNo

Código Delphi [-]
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  showmessage(IntToSTr(Query1.RecNo));
end;

Con MouseCoord

Código Delphi [-]
procedure TForm1.DBGrid2MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
 Coordenadas : TGridCoord;
begin
 Coordenadas := DBGrid2.MouseCoord(X,Y);
 showmessage('Columna:'+IntToStr(Coordenadas.X)+' Fila:'+IntToStr(Coordenadas.Y));
end;

Eso es lo que quieres o quieres obtener los valores de la fila que has seleccionado.

Saluditos


La franja horaria es GMT +2. Ahora son las 17:47:31.

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