![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TTreeView с ;wordwrap текста в нодах [D5, Win2k]
Dinn © (2003-02-08 00:36:00)Уважаемые, можно такое сделать?
Vagrant (2003-02-10 02:36:00) [1]Возьми VirtualTreeView и навсегда забудь
про стандартный TreeView ;=)
ALex44 (2003-02-10 01:00:00) [2]
> Style (09.02.03 00:52)
> > DINN
> Самому писать :)
>
> Хочешь попробовать??
Ya, k stati, napisal, i teper" tol"ko im i pol"zuyus". Bystree, gibche, men"she glyukov (tochnee, proshe ispravlyat" :) No o multiline ya ne dumal (ne nuzhno bylo), no eto, conechno, ne problema.
Dinn (2003-02-09 14:03:00) [3]>Юрий Зотов
Спасибо, но установить высоту ноды мало, еще надо и длину. А такого сообщения я что-то не нашел.
Юрий Зотов (2003-02-09 10:06:00) [4]TVM_SETITEMHEIGHT
Style (2003-02-09 00:52:00) [5]> DINN
Самому писать :)
Хочешь попробовать??
Dinn (2003-02-09 00:44:00) [6]>Style
Это что за зверь (и где его взять)?
Style (2003-02-08 23:13:00) [7]TWordWarpTreeView :))
Style (2003-02-08 23:13:00) [8]TWordWrapTreeView :))
Dinn (2003-02-08 22:03:00) [9]Итого - стандартное дерево, скорее всего, так не развернешь?
Надо писать свое с нуля?
Style (2003-02-08 15:55:00) [10]А вот функция походу получает размер от когогото сообщения, а вот как туды влезть? Тут и Билл Гейтс запутается :))
TVM_GETITEMRECT - это сообщение и использует Node.DisplayRect,
а сообщения для установки Rectа нету!
т.е. виды этого делать не дают!
Dinn (2003-02-08 14:11:00) [11]Если я правильно понял, то можно воткнуть что вроде такого в tvCustomDrawItem :
NodeRect:=Node.DisplayRect(True);
Windows.DrawText(Node.Handle, PChar(Node.Text), Length(Node.Text), NodeRect, DT_WordBreak);
Но как управлять ректом ноды?
Style (2003-02-08 08:56:00) [12]Я там как бы в исходнике дерева зарисовки не нашел., конечно если перехватить виндовские... дык вот как??
Юрий Зотов (2003-02-08 06:55:00) [13]> поэтому я думаю что зарисовку самих нодов ты не перехватишь.
Жмем F1 - и видим готовые события, позволяющие перехватить прорисовку не только самого дерева, но и каждого его узла. А функция DrawText имеет флаг DT_WORDBREAK.
Style (2003-02-08 00:57:00) [14]Это не реально! т.е. Само дерево изначально рисуют винды. поэтому я думаю что зарисовку самих нодов ты не перехватишь.
Единственное что можно сделать это создавать ноды чуть ниже и
вних вставлять продолжение текста, а на AdvancedCustomDraw попробывать запретить рисование RootLine и картинок в данных нодах.
:)
Да и посмотри мой TGridTreeView может пригодиться
http://sands.nm.ru/TGTView.zip