Author: Tomas Rutkauskas
How can I make a hint for a single cell in a TDBGrid or TDrawGrid? I want to
display any text in a grid cell even if it is not placed in the cell completely.
Answer:
Here's an example taken from a working app but simplified a little. OldHintRow and
OldHintCol are private variables declared in TStosWin. They store the column and
row for which the hint was shown previously.
procedure TStosWin.MyDrawGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y:
Integer);
var
R, C: Integer;
begin
with MyDrawGrid1 do
begin
MouseToCell(X, Y, C, R);
if (C = OldHintCol) and (R = OldHintRow) then
exit; {Don't do anything if mouse is in the same cell}
OldHintCol := C;
OldHintRow := R;
Hint := ' Your hint for column C and row R';
{Force the hint to redisplay}
PostMessage(Handle, WM_MBUTTONDOWN, MK_LBUTTON, Dword((Y shl 16) + X));
end;
end;