HINTPROC SRC


{ Пример изменения подсказок в объекте TStringGrid } procedure TForm1.StringGrid1MouseMove ( Sender: TObject; Shift: TShiftState; X, Y: Integer );
const LastMCol: LongInt = -2; LastMRow: LongInt = -2; var MCol, MRow: LongInt; // Столбец и строка, где находится курсор NewHintText: string; Grid: TStringGrid; begin Grid := Sender as TStringGrid; Grid.MouseToCell( X, Y, MCol, MRow );
if ( MCol <>
LastMCol ) or ( MRow <>
LastMRow ) then begin Application.CancelHint; if ( MCol = -1 ) or ( MRow = -1 ) then NewHintText := 'Not over cell' else NewHintText := Format( 'Col %d, Row %d', [ MCol, MRow ]);
Grid.Hint := NewHintText; end; LastMCol := MCol; LastMRow := MRow; end;

Этот код можно использовать во всех трех версиях Delphi, хотя поведение окна подсказки в них несколько отличается. В Delphi 1 и 2 окно подсказки остается в нижней части сетки, независимо от положения курсора. В Delphi 3 окно подсказки следует за курсором и располагается рядом с текущей ячейкой или поверх нее — именно на это вы и рассчитывали.



Содержание раздела