![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
THintWindow: подсказка, движущаяся за курсором.
Дмитрий © (2008-02-06 07:02:00)Добрый день. Необходимо сделать подсказку, которая бы двигалась за курсором над полем графиков и выводила данные в текущей точке.
В правильном ли я направлении мыслю ? Сделать это при помощи THintWindow. Но вопрос, как его прицепить к TChart покрасивее? Заранее благодарю за любую помощь.
New (2008-02-06 20:45:00) [1]var
TTI: TToolInfo;
TTHWND: THandle;
New (2008-02-06 10:44:00) [2]
> Дмитрий (06.02.08 07:02)
> Сделать это при помощи THintWindow
Можно с помощьюTOOLTIPS_CLASS
uses CommCtrl;
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Interval:= 10;
if TTHWND <> 0 then
DestroyWindow(TTHWND);
TTHWND:= CreateWindow(TOOLTIPS_CLASS, '',
$30,
Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),
0, 0, HInstance,
nil);
TTI.cbSize:= SizeOf(TTI);
TTI.uFlags:= TTF_TRACK + TTF_TRANSPARENT;
TTI.Rect.Left:= 0;
TTI.Rect.Top:= 0;
TTI.Rect.Bottom:= 0;
TTI.Rect.Right:= 0;
SetWindowPos(TTHWND, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE);
TTI.lpszText:= PChar('Добрый день., В правильном ли я направлении мыслю ?');
SendMessage(TTHWND, TTM_ADDTOOL, 0, Integer(@TTI));
SendMessage(TTHWND, TTM_TRACKPOSITION, 0, MAKELPARAM(Mouse.CursorPos.X, Mouse.CursorPos.Y));;
SendMessage(TTHWND, TTM_TRACKACTIVATE, Integer(LongBool(True)), Integer(@TTI));
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
SendMessage(TTHWND, TTM_TRACKPOSITION, 0, MAKELPARAM(Mouse.CursorPos.X, Mouse.CursorPos.Y));
end;
ANB (2008-02-06 10:05:00) [3]OnMouseMove вроде как поможет :)