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

Вниз

HotTrack в TreeView   Найти похожие ветки 

 
Alex870   (2004-08-27 14:55) [0]

Здравствуйте!
У меня такая проблема с TreeView: в его свойствах (в дизайнтайме) я поставил Hottrack = true и когда двигаешь по Nod"ам они подсвечиваются как гиперссылки, и я хочу, на событие подсвечивания делать определенное действие
на событие OnAdvancedCustomDrawItem я пишу

type
...
List : TTreeView;
...
procedure TForm1.ListAdvancedCustomDrawItem(Sender: TCustomTreeView;
 Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
 var PaintImages, DefaultDraw: Boolean);
begin
if (cdsHot in State) then ...действие
end;

так вот если вести мышь вверх по TreeView это работает, а если вниз, то (cdsHot in State) = False; Кто знает почему? Зарание спасибо!


 
GuAV ©   (2004-08-27 15:13) [1]

Проверь это:
if (cdsHot in State) then Caption:=Node.Text;

Учти, что он должен перерисовать и ту с которой снят выбор также. Отсюда и False.


 
Alex870   (2004-08-27 16:45) [2]

Да, я согласен, что Node.Text работает при перемещении и вверх и вниз, однако у меня задача, чтобы в StatusBar выводилась информация о выбранной Nod"e, а если мышь не на одной из Node, то StatusBar должен быть пуст, вот я и хочу поймать момент, когда Note подсвечена, а когда нет. А за внимание к вопросу большое спасибо!


 
GuAV ©   (2004-08-27 17:34) [3]

var SelNode: TTreeNode;

procedure TForm1.TreeView1AdvancedCustomDrawItem(Sender: TCustomTreeView;
 Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
 var PaintImages, DefaultDraw: Boolean);
begin
 if (cdsHot in State) then
   SelNode:=Node
 else if SelNode=Node then
   SelNode:=nil;
 if SelNode=nil then
   Caption:="Ничё не выбрано"
 else
   Caption:=Format("Выбрана №%d ""%s""",
     [SelNode.Index,SelNode.Text]);
end;


 
Alex870   (2004-08-28 10:22) [4]

Спасибо, отличный пример, однако у меня результат получился тот же. Т.е. ведешь указатель мыши вниз по Nod"ам - всё работает, а вот если снизу вверх, то в Caption "Ничё не выбрано".


 
GuAV ©   (2004-08-28 14:57) [5]

Alex870   (28.08.04 10:22) [4]
У меня работает. Точно Ctrl+C, Ctrl+V правильно? var SelNode: TTreeNode; - глобальная?


 
Alex870   (2004-08-29 20:17) [6]

Уточните пожалуйста, какой версией Delphi Вы пользуетесь. Дело в том, что я перешел с 5-й на 6-ю только из-за багов в этом компоненте, в 5-й бвли ограничения на TNode.text, по моему, 80 знаков. Может быть вы пользуетесь версией выше 6-й. Но если у вас этот код корректно работает в 6-й Delphi (при перемещении снизу вверх по нодам высвечиваются их параметры, а не надпись "Ничё не выбрано"), значит это я дурак, и буду искать свои ошибки. И ещё, большое спасибо за помощь!!!


 
GuAV ©   (2004-08-29 20:19) [7]


> Может быть вы пользуетесь версией выше 6-й.

у меня D7.


 
Alex870   (2004-08-30 17:34) [8]

Поставил Delphi7 и всё отлично заработало! Большое спаибо GuAV!Интересно, кто писал этот удивительный компанент, из-за которого я поменял 2 версии Delphi, а то бы так до сихпор и сидел на 5-й :)


 
GuAV ©   (2004-08-30 17:39) [9]


> из-за которого я поменял 2 версии Delphi, а то бы так до
> сихпор и сидел на 5-й :)

Интересно.
Вообще то имхо это не повод покупать новую версию. Попробую проверить в Д6.



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

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

Наверх





Память: 0.46 MB
Время: 0.031 c
9-1085123883
Bond
2004-05-21 11:18
2004.09.12
Аналоги TBitMap


14-1093445329
Empleado
2004-08-25 18:48
2004.09.12
Может ли кто мне объяснить понятие слова "акриловый"?


1-1093697729
<b>He`KTo</b>
2004-08-28 16:55
2004.09.12
Как Icon (Icon:hIcon) запихать в ImageList


14-1093095857
Nick Denry
2004-08-21 17:44
2004.09.12
Библиотека Qt


14-1093468159
Flashman
2004-08-26 01:09
2004.09.12
Несложная работа для программера среднего уровня





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