Главная страница
    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.01 c
1-82296
lipskiy
2003-09-13 17:36
2003.09.25
Ассемблерная строчка не компилится под D7, под D5 нормально


1-82194
DeScriptor
2003-09-12 15:40
2003.09.25
Глобальные проблемы в работе с файлами в Дельфи


3-82084
igor_b
2003-09-05 14:03
2003.09.25
MSSQL StoredProc


14-82497
Nik8.
2003-09-05 13:12
2003.09.25
СВОБОДА )))


9-82027
Rampelstinskin
2003-03-23 19:02
2003.09.25
RSDN & Форум про создание игр.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский