|
Тема
|
Как да "хвана" скрола на TreeView в една форма?
|
|
Автор |
Kadabra (непознат
) |
Публикувано | 10.08.06 23:13 |
|
Как да "хвана" скрола на TreeView в една форма?
Опитах WM_COMMAND, WM_SYSCOMMAND и WM_VSCROLL - не стана.
Ясно ми е, че ако направя наследник на tTreeView ще го хвана, но не ми харесва подхода.
| |
Тема
|
Re: Как да "хвана" скрола на TreeView в една форма?
[re: Kadabra]
|
|
Автор |
Mixy (@#$%^) |
Публикувано | 11.08.06 08:25 |
|
Какво точно искаш да му "хванеш" на скрола? И за кой скрол говориш - скролбара или скрола на мишката?
Mixy
| |
Тема
|
Искам да усетя кога се е изменило множеството
[re: Mixy]
|
|
Автор |
Kadabra (непознат) |
Публикувано | 11.08.06 08:38 |
|
Искам да усетя кога се е изменило множеството :) на видимите възли.
За целта сам прехванал маса случки, освен движението на скрола на дървото.
Скрола може да се движи с мишка, клавиатура или по телепатия - няма значение.
Хайде, напиши ми идентификатора на командата, не се бъзикай със стария!
| |
Тема
|
Re: Искам да усетя кога се е изменило множеството
[re: Kadabra]
|
|
Автор |
Mixy (@#$%^) |
Публикувано | 11.08.06 16:04 |
|
Ако те интересува дали даден елемент е видим или не, пробвай с Item.IsVisible. А ако искаш да се ровиш по-надълбоко, потърси за TreeView в MSDN.
Mixy
| |
Тема
|
Сигурен ли си ...
[re: Mixy]
|
|
Автор |
Kadabra (непознат) |
Публикувано | 12.08.06 11:50 |
|
Сигурен ли си, че формата не получава някакво съобщение при промяна на TreeView?
| |
Тема
|
Да взема да си призная, най-накрая :)
[re: Mixy]
|
|
Автор |
Kadabra (непознат) |
Публикувано | 12.08.06 21:50 |
|
Да взема да си призная, най-накрая :)
Тая работа ми трябва, защото си оцветявам алтернативно през ред възлите на TreeView-то.
Другите случки се обработват както трябва, освен скрола.
И това е заради оптимизацията на прерисуването ( да го ... :) - прерисува само 2-3 от възлите и цветовете се ошалдуркват (направо се кефя на богатия си речник).
| |
Тема
|
Re: Да взема да си призная, най-накрая :)
[re: Kadabra]
|
|
Автор |
Mixy (@#$%^) |
Публикувано | 13.08.06 11:59 |
|
TreeView е стандартен Win32 конрол и Delphi го капсулира без изменения. За да се намесиш в работата му, ще трябва да наследиш TTreeView и да почетеш в MSDN какви са бътрешните му съобщения. Това едва ли си струва усилията предвид целта за която ще го правиш. Пресметни колко време печелиш от оптимизацията (или направо го засечи) и ще видиш, че вероятно е излишна. При промяна на TreeView контрола, най-простото е да си прерисуваш видимите елементи в интерфейса и си готов. Друг е въпроса, че стандартния контрол е доста елементарен. Потърси в мрежата за Virtual TreeView - това, което търсиш при него е реализирано наготово. Освен, че е убийствено бърз, компонента е и напълно свободен.
Mixy
| |
Тема
|
Re: Да взема да си призная, най-накрая :)
[re: Kadabra]
|
|
Автор | Пaпaraлa Йoprи (Нерегистриран) |
Публикувано | 15.08.06 18:39 |
|
Интересно
Ако използваш OnCustomDrawItem или OnAdvancedCustomDrawItem не трябва да имаш проблеми със скрола. Малко трябва да си поиграеш за да стане добре ама такъв е живота Казвам го от личен опит, правил съм нещо подобно и нямаше никакви проблеми от подобно естество
| |
Тема
|
И в двете случки призъства Item - лошо
[re: Пaпaraлa Йoprи]
|
|
Автор |
NikB (любопитен) |
Публикувано | 17.08.06 08:13 |
|
И в двете случки призъства Item, така, че не е добре да се рисуват други items, освен изпратените като параметри. А вече писах, че заради оптимизацията, тия две случки прерисуват само тия item, които не могат да се копират през canvas.
| |
|
|
|
|