Fórum Hint para linhas do DBgrid #253707
07/10/2004
0
Olá! Gostaria de saber se alguém conhece algum modo de exibir um Hint diferente para cada linha do DBGrid. Por exemplo: se o usuário deixar o mouse em cima de uma determinada linha do Grid apontando por exemplo para uma tabela de clientes e eu quisesse mostrar no Hint a última compra feita por esse cliente.
Delphi32
Curtir tópico
+ 0
Responder
Posts
08/10/2004
Fabio_lamber
Amigo faz assimMostrar o Hint para cada coluna do StringGrid
Para testar o exemplo abaixo inclua no seu form um componente StringGrid
Para testar o exemplo abaixo inclua no seu form um componente StringGrid
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
Col,Row : integer; // Declarar esta variável
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// Evento OnCreate do Form
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Hint := ´0 0´;
StringGrid1.ShowHint := True;
end;
// Evento OnMouseMove do componente StringGrid
procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var r,c : integer;
begin
StringGrid1.MouseToCell(X, Y, C, R);
if ((Row <> r) or (Col <> c)) then
begin
Row := r; Col := c;
Application.CancelHint;
StringGrid1.Hint := ´Linha: ´+IntToStr(r)+#32+´Coluna: ´+IntToStr(c);
end;
end;
Responder
Gostei + 0
08/10/2004
Delphi32
baseado no seu código adaptei para o seguinte no DBGrid:
O problema é que se a pessoa está na linha 1 e coluna 1 e depois desce a barra de rolagem mas continua passando o mouse sobre a linha 1 e coluna 1 relativa ele ainda retorna esse 1,1. O que eu queria na verdade era descobrir qual linha da tabela é aquela onde o mouse está passando por cima.
Alguem tem alguma idéia?
até!
procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var t:TGridCoord; begin t := DBGrid1.MouseCoord(X,Y); Application.CancelHint; DBGrid1.Hint := ´X: ´+IntToStr(t.X)+#1310+ ´Y: ´+IntToStr(t.Y); end;
O problema é que se a pessoa está na linha 1 e coluna 1 e depois desce a barra de rolagem mas continua passando o mouse sobre a linha 1 e coluna 1 relativa ele ainda retorna esse 1,1. O que eu queria na verdade era descobrir qual linha da tabela é aquela onde o mouse está passando por cima.
Alguem tem alguma idéia?
até!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)