Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mensaje al pasar el mouse por una celda de un Stringgrid (https://www.clubdelphi.com/foros/showthread.php?t=56550)

mancurnino 20-05-2008 17:35:30

Mensaje al pasar el mouse por una celda de un Stringgrid
 
Hola amigos, quiero que me salga una especie de informacion de ayuda, al pasar el mouse sobre una celda de un stringgrid. Por ejemplo digamos que tengo una columna en el stringgrid q contiene DNI´s, y al pasar el mouse sobre uno de ellos, quiero que me vaya a una tabla de database desktop, y segun el dni, me muestre en pantalla el nombre y apellidos por ejemplo. el caso es que nose como cojer este evento de "al pasar x encima", y obtener la fila y columna del Stringgrid.

Caro 20-05-2008 17:58:09

Hola mancurnino, el evento es el OnSelectCell del StringGrid, un ejemplo:

Código Delphi [-]
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
 showmessage('Se ha seleccionado la columna '+IntToSTr(ACol)+' Fila'+IntToSTr(ARow)+' '+StringGrid1.Cells[ACol,ARow]);
end;

Saluditos

roman 20-05-2008 18:15:20

Pero OnSelectCell se ejecuta una vez que se selecciona la celda, pero no cuando sólo cuando se pasa el cursor por encima. Creo que le conviene más el evento OnMouseMove del StringGrid:

Código Delphi [-]
procedure TForm1.StringGrid1MouseMove(
  Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
  Col, Row: Integer;

begin
  // Obtiene la columna y fila sobre la que estamos
  StringGrid1.MouseToCell(X, Y, Col, Row);

  Caption := Format('(%d, %d)', [Col, Row]);
end;

// Saludos

mancurnino 20-05-2008 19:25:49

gracias, lo probare.:)

x cierto, sabriais como hacer para que lo que tenga q acer (en el ejemplo q as puesto seria darle valor al caption),lo aga cuando haya stado por ejemplo un segundo sobre esa celda y si sta menos que no lo aga.

mancurnino 23-05-2008 16:40:08

Al final me sale. Lo que hago es al posarme sobre una celda, se muestra un hint que he puesto, luego, si me muevo a otra celda no se muestra, tengo que salir del stringgrid y entoncs vuelvo a entrar y se me vuelve a mostrar el hint, digamos que se me muestra una vez, y luego tengo que salir del stringgrid y volver a entrar para que me salga de nuevo

Se podria hacer para que se me muestre el hint cada vez que cambie de celda sin tener que salir del stringgrid? Dejo el codigo:

Código Delphi [-]
StringGrid_Planing.MouseToCell(X, Y, Col, Row);

StringGrid_Planing.Hint:=StringGrid_Planing.Cells[Col, Row];


La franja horaria es GMT +2. Ahora son las 06:53:18.

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