Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Начинаю дорисовывать в TreeNode - шрифт меняется! [D5, Win2k]


miDDTrich ©   (2002-07-04 15:43:00) 

Добрый день,

Хочу дорисовать немного графики справа от текста TreeNode.

То, как стандартно отрисовываются и ветки и узлы и текст меня вполне устраивает, т.е. я поставил DefaultDraw:=True и не хочу усложнять себе жизнь ;-)

Все замечательно, пока я не начинаю рисовать (LineTo). После первой моей линии дефолтовый шрифт, которым выводятся элементы
(Arial,8pt, вроде) неожиданно меняется во всем TreeView на какой-то Times,11pt,Bold...

Подскажите, можно ли не рисовать ручками (DefaultDraw:=False), если просто нужно чуть-чуть дорисовать? Спасибо!


miDDTrich   (2002-07-04 16:58:00) [1]

Действительно, помогло прописывание Canvas.Font.Name при каждом вызове AdvancedCustomDrawItem().

Спасибо!


qube   (2002-07-04 16:39:00) [2]

Вот это помогло:
Font.Name := "MS Sans serif";


miDDTrich   (2002-07-04 16:13:00) [3]

Собственно, исходника-то нету ;-)

procedure TForm1.tvAdvancedCustomDrawItem();
begin
with tv.Canvas do
begin
DefaultDraw:=True;
NodeRect:=Node.DisplayRect(False);
MoveTo(NodeRect.Left+20,NodeRect.Top+5);
// LineTo(NodeRect.Right, NodeRect.Top+5);

Так все в порядке.

Если раскомментировать последнюю строку, то рисуется горизонтальная линия, а весь шрифт TTreeView становится ужасным болдом.

Посмотреть можно здесь:
http://www.mitrich.ru/1.gif
http://www.mitrich.ru/2.gif


qube   (2002-07-04 15:48:00) [4]

Кусок исходника приведи?


Наверх

Титульная страница Поиск, карта сайта Написать письмо