PDA

Ver la Versión Completa : Mensaje al pasar el mouse por una celda de un Stringgrid


mancurnino
20-05-2008, 17:35:30
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:


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:


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:

StringGrid_Planing.MouseToCell(X, Y, Col, Row);

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