Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];

Вниз

Hint для TreeView   Найти похожие ветки 

 
Новик   (2003-09-12 14:18) [0]

Ув. мастера. Помогите решить проблемку. Есть TreeView, надо
для каждого Item"a вывести свой Hint. Кажется все просто: прописываю Application.OnShowHint, в TreeView1OnMouseMove пишу следующее:
var
P:TPoint;
begin
Application.HideHint;
P.X:=X;
P.Y:=Y;
P:=TreeView1.ClientToScreen(P);
Application.ActivateHint(P);
end;
В WinXP код работает нормально. Но в 2000 или NT4 подсказка по ActivateHint не возникает. Почему и как заставить код работать?


 
Verg   (2003-09-12 14:30) [1]

procedure TForm1.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var Tn : TTreeNode;
begin
Tn:=(Sender as TTreeView).GetNodeAt(X,Y); // Так получаешь "над каким" мышь
if Tn<>nil and
Tn<>OldTn then // OldTn : TTreeNode - поле формы
begin
OldTn:=Tn;
Application.CancelHint;
TreeView1.Hint:=Tn.Text; // ну например
end;

end;


 
Verg   (2003-09-12 14:39) [2]

Не, че-то не то, попробовать негде...
Вроде так:

procedure TForm1.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var Tn : TTreeNode;
begin
Tn:=(Sender as TTreeView).GetNodeAt(X,Y); // Так получаешь "над каким" мышь
if (Tn<>OldTn) then // OldTn : TTreeNode - поле формы
begin
OldTn:=Tn;
if Tn<>nil then
begin
Application.CancelHint;
TreeView1.Hint:=Tn.Text; // ну например
end else TreeView1.Hint:="";
end;
end;


 
Новик   (2003-09-12 17:40) [3]

Не работает у меня этот код. Да и разве CancelHint не значит отменить вывод подсказки?


 
Verg   (2003-09-13 15:34) [4]

А у меня работает...

Грустно, правда?

При этом стопудово работает.

А если не трогать

> Application.OnShowHint

???


> Да и разве CancelHint не значит отменить вывод подсказки?


Значит.:))
ну не навсегда же!


 
Новик   (2003-09-15 11:20) [5]

Наверное я недоформулировал вопрос. Фишка не в том, чтобы
при наведении мыша на TreeView показать одиночную посказку, нужно чтобы при движении по компоненту над каждым узлом отображалась подсказка. Если кому-нибудь еще это понадобится привожу решение (почти сам догадался):
procedure TForm1.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
Rect:TRect;
Node:TTreeNode;
P:TPoint;
begin
Node:=TreeView1.GetNodeAt(X,Y);
if Node=OldNode then exit;
OldNode:=Node;
if OldNode=NIL then exit;
if HintWindow<>NIL then
HintWindow.ReleaseHandle;
HintWindow:=THintWindow.Create(self);
Rect:=HintWindow.CalcHintRect(200,"Ваш текст",NIL);
P:=TreeView1.ClientToScreen(Point(X,Y));
Rect.Top:=Rect.Top+P.Y;
Rect.Bottom:=Rect.Bottom+P.Y;
Rect.Left:=Rect.Left+P.X;
Rect.Right:=Rect.Right+P.X;
HintWindow.ActivateHint(Rect,"Ваш текст");
end;
Это работает везде.


 
ЮРИЙ_К   (2003-09-15 11:33) [6]

Здесь если использовать стандартный хинт, то нужно ешшо регулировать скорость показа самого хинта, а если передвигать зверя мышиного по дереву быстро, то и он вааще не появится 8-).
Сам только закончил ковырять эту проблему.
>> Новик Если очень нужно, пиши на мыло, вышлю код обработки



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
6-82380
Yelchev
2003-07-29 00:51
2003.09.25
Проблема с IntraWeb в ISAPi приложении.


14-82488
TNT
2003-09-03 23:49
2003.09.25
А собственно для чего нужен свой сайт?


14-82487
наблюдатель
2003-09-05 18:50
2003.09.25
Блиц тест


7-82521
Шустрый
2003-07-13 21:00
2003.09.25
Открытие и закрытие окон


14-82476
Карлсон
2003-09-05 16:23
2003.09.25
рассказ Бредбери?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский