Вниз
Скачать: CL | DM;

Не получается самому рисовать TTreeView :(   Найти похожие ветки 

← →
Calm ©   (2003-02-15 16:41) [0]

В обработчике OnCustomDrawItem рисую узел дерева.
Но узел получается такой ширины, сколько занимает отрисованное свойство Node.Text
Получается, я не могу отрисовать узел несколькими шрифтами. Например, мне хочется первое слово рисовать жирным, а остальные обычным шрифтом. Точнее, отрисовать получается, но мышка чувствует только свойство Text.
Далее. Чтобы бы я ни рисовал, все равно выводится строка Text.
Как быть?

Чувствую, что упустил что-то важное. Но не могу понять что именно.

Далее...
Очень хотелось бы рисовать многострочный Node.
Помню, что на этой неделе (или в конце прошлой) в форуме обсуждался этот вопрос.
Не могу найти. Поиск на сайте НЕ РАБОТАЕТ!!! При поиске по данному форуму со словом "дерево" ничего не находится :((


Заранее спасибо за ответы.
С уважением


← →
Song ©   (2003-02-15 17:39) [1]

Надо очищать клиентскую область - FillRect()


← →
Calm ©   (2003-02-15 18:33) [2]


> Надо очищать клиентскую область - FillRect()

Я очищаю. Не помогает.

И потом, если бы дело только в очистке, то почему же узел реагирует на мышку (выбирается кликом) только в той области, где отрисовано значение свойства Node.Text?


← →
Song ©   (2003-02-15 21:21) [3]

Ну так на это событие ты только отрисовываешь строки самостоятельно, ты вовсе этим не меняешь порядок работы мыши с деревом т.е. другими словами, даже если ты вообще ветку выводить не будешь, а кликнешь на то место где она должна быть, всё будет как надо т.е. появится фокусная рамка, сработает свойство Selected, все события и т.д.


← →
Song ©   (2003-02-15 21:43) [4]

Ты знаешь, сколько я этих обработчиков не писал, никогда у меня не выводится старое начертание ветки.
1.Определяешь клиентскую область - TTreeNode.DisplayRect()
2.Очищаешь её.
3.С этого момента можешь писать текст различными шрифтами, да хоть чёрта с рогами через TBitMap выведи..

Какие сложности-то?


← →
jack128 ©   (2003-02-15 22:50) [5]

А может DefaultDraw := False; забыл написать?


← →
Song ©   (2003-02-16 10:19) [6]

2jack128 © (15.02.03 22:50)
Это не надо.


← →
Calm ©   (2003-02-17 10:05) [7]


> Определяешь клиентскую область - TTreeNode.DisplayRect()

Вот! Клиентская область получается такая, чтобы туда поместилось свойство TTreeNode.Text.
А хотелось бы задать ее самому. Я могу это сделать? Если могу, то как?



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
1-87449
nomshar
2003-02-18 18:34
2003.02.27
Обработка события у динамически созданного компонента


14-87711
michael_b
2003-02-09 21:58
2003.02.27
Про дополнительные компоненты


14-87698
Евгений Т.
2003-02-11 18:08
2003.02.27
TCP/IP


1-87564
V-Isa
2003-02-17 14:18
2003.02.27
Покидание компонента курсором мыши


14-87616
Ketmar
2003-02-09 23:02
2003.02.27
читать всем!




   Наверх