上一篇 | 下一篇

TStringGrid中实现网格单元Hint功能

发布: 2008-6-26 17:57 | 作者: admin | 来源: | 查看: 0次

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.

(出处:www.delphibbs.com)

字号: | 推荐给好友

评分:0

我来说两句