TStringGrid中雖然具有Hint功能,但卻是為整個控件設置的,網格的單元并不具備Hint功能。本文介紹一種利用OnMouseMove事件來實現網格單元Hint功能的代碼,具體如下:
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
FRect: TRect;
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
SetRect(FRect, 0, 0, 0, 0);
end;
procedure TForm1.StringGrid1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
Pt: TPoint;
Col, Row: integer;
begin
StringGrid1.MouseToCell(x, y, Col, Row);
Pt.X := x;
Pt.Y := y;
if not PtInRect(FRect, Pt) then
begin
FRect := StringGrid1.CellRect(Col, Row);
Inc(FRect.Right);
Inc(FRect.Bottom);
StringGrid1.Hint := StringGrid1.Cells[Col, Row];
Application.CancelHint;
end;
end;
end.
標簽:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn