![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Начинаю дорисовывать в 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]Кусок исходника приведи?