Помогите с TreeView!!!!
От: magg  
Дата: 07.06.04 09:28
Оценка:
Может кто сталкивался со следующей проблемой:

Есть компонент TTreeView с количеством items, достаточным, чтобы
появились горизонтальный и вертикальный скроллбары.
Отрисовка происходит в событии OnCustomDrawItem.

Так вот, если начинаю скроллить по вертикали — все нормально, по
горизонтали — появляется рябь. Есть ли ли способ решить проблему, не
переходя на VirtualTreeView?



procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var DC : HDC;
    R : TRect;
begin
   DefaultDraw := false;

   DC := GetDC(TreeView1.Handle);

   R := Node.DisplayRect(false);
   MoveToEx(DC, R.Left, R.Top, nil);
   LineTo(DC, R.Right, R.Bottom);

   ReleaseDC(TreeView1.Handle, DC);
end;
Re: Помогите с TreeView!!!!
От: ArtDenis Россия  
Дата: 07.06.04 15:12
Оценка:
Здравствуйте, magg, Вы писали:

M>Может кто сталкивался со следующей проблемой:


Вообще-то в этом событии принято рисовать на TreeView1.Canvas, а не средствами WinAPI. Попробуй, может помочь.
... << Rsdn@Home 1.1.4 beta 1 >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[2]: Помогите с TreeView!!!!
От: Аноним  
Дата: 11.06.04 13:30
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Здравствуйте, magg, Вы писали:


M>>Может кто сталкивался со следующей проблемой:


AD>Вообще-то в этом событии принято рисовать на TreeView1.Canvas, а не средствами WinAPI. Попробуй, может помочь.


Вообще то, я наоборот думал, что должен Win API помочь.
Все равно не катит
Re: Помогите с TreeView!!!!
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 11.06.04 13:34
Оценка: +1
Здравствуйте, magg, Вы писали:

[]

M> Так вот, если начинаю скроллить по вертикали — все нормально, по

M> горизонтали — появляется рябь. Есть ли ли способ решить проблему, не
M> переходя на VirtualTreeView?

TreeView1.DoubleBuffered := True;

не помогает?
Re[2]: Помогите с TreeView!!!!
От: akasoft Россия  
Дата: 11.06.04 16:54
Оценка:
Здравствуйте, Flamer, Вы писали:

F>не помогает?


Или даже так

Form1.DoubleBuffered := True;
... << RSDN@Home 1.1.4 beta 2 >>
Re[3]: Помогите с TreeView!!!!
От: Аноним  
Дата: 12.06.04 08:20
Оценка:
Здравствуйте, akasoft, Вы писали:

A>Здравствуйте, Flamer, Вы писали:


F>>не помогает?


A>Или даже так


A>
A>Form1.DoubleBuffered := True;
A>


Та же песня во обоих случаях:
Form1.DoubleBuffered := True;
treeview1.DoubleBuffered := True;
Re[4]: Помогите с TreeView!!!!
От: akasoft Россия  
Дата: 12.06.04 12:41
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А если одновременно в OnCreate формы, при условии что тривиев лежит сразу на форме, без промежуточных контейнеров:

Form1.DoubleBuffered := True;
treeview1.DoubleBuffered := True;
... << RSDN@Home 1.1.4 beta 2 >>
Re[4]: Помогите с TreeView!!!!
От: ArtDenis Россия  
Дата: 12.06.04 16:59
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Та же песня во обоих случаях:

А> Form1.DoubleBuffered := True;
А> treeview1.DoubleBuffered := True;

А рисовал точно на Canvas? Или опять использовал GetDC(TreeView1.Handle)? При использовании GetDC не будет работать двойная буферизация.
... << Rsdn@Home 1.1.4 beta 1 >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.