![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с TreeView [Delphi, Windows]
Delphuk © (2007-07-04 20:11:00)Здравствуйте. В моем приложении есть TreeView, мне нужно его использовать как дерево чекбоксов для этого я поставил в опциях соотв. пункт. Пожалуйста подскажите, как сделать следующее:
- при установке галки "родителю" автоматически ставить галочки "детям"
- пробежаться по всему дереву и узнать, какие узлы отмечены галочкой
- добавить картинку в некоторые узлы (не во все)
- сделать отдельные хинты для каждого узла
В FAQ'е и на форуме я ничего подобного не нашёл, а в книге по KOL, на эту тему мало информации.
Robt (2007-12-13 11:07:00) [1]как корректно через TVExpanding
добавлять узлы в раскрывающийся узел ?
и чтоб это срабатывало тока на не раскрытых узлах
это что то в стиле коловского dirtreeview
но код перенесенный оттуда у меня не
работает при включенной оптимизации !?
точней внутренне работает но визуально узлы не раскрываются !?
Delphuk (2007-07-06 22:39:00) [2]Спасибо. Книгу и FAQ я читаю :)
vpbar (2007-07-06 09:53:00) [3]Устанавливает галочки (которые картинки узлов) всех потомков узла Parent в состояние (которое индекс картинке в списке ImageList) selst
function TFF1.SetSelChild(Parent, selst: cardinal): DWORD;
// c- ID_TREE_NODE ss-TVItemStateImg
var
cur: integer;
begin
result := 0;
cur := DirTreeView1.TVItemChild[Parent];
if cur = 0 then exit;
repeat
DirTreeView1.TVItemStateImg[cur] := selst;
SetSelChild(cur, selst);
cur := DirTreeView1.TVItemNext[cur];
until cur = 0;
end;
Соответственно пробежатся аналогично, а проверка, что узел выделен == проверке что у узла определенная иконка (DirTreeView1.TVItemStateImg[cur] = selst)
ЗЫ
Читайте "Книга о KOL"
Delphuk (2007-07-05 22:31:00) [4]=BuckLr=, так что на счёт демки. Хотелось бы посмотреть как пробежать по всему дереву и определить какие узлы отмечены галочками + как можно отметить галочкой произвользый узел?
=BuckLr= (2007-07-05 13:43:00) [5]
> А галочки через TVItemSelected и не ловятся
Кстати!
Unknown Mystic (2007-07-05 10:39:00) [6]А галочки через TVItemSelected и не ловятся.
Только перебор с проверкой TVItemStateImg на 1 или 2 - не помню точно.
И картинку можно поставить отдельному узлу. Тут =BuckLr= совершенно прав.
=BuckLr= (2007-07-05 09:20:00) [7]
> там только есть добавление и удаление
Там есть пример использования TVItemAtPos. Ну как домой приду, может, напишу примерчик
Delphuk (2007-07-04 23:42:00) [8]Посмотрел демку, там только есть добавление и удаление, а того что меня интересует там нет. Как не пытался, ничего не получается. Как я понял, картинку произвольному узлу вообще нельзя поставить :( С определением состояния галочек тоже проблема. Как не стыдно, но думаю будет лучше показать код :(
vpbar (2007-07-04 21:30:00) [9]Точно сказал =BuckLr=. Больше и сказать нечего если только код дать.
=BuckLr= (2007-07-04 20:48:00) [10]
> ри установке галки "родителю" автоматически ставить галочки
> "детям"
Перебором, по-моему, больше никак. Может, кто ещё способ знает
> какие узлы отмечены галочкой
TVItemSelected
> добавить картинку в некоторые узлы
TVItemSelImg\TVItemStateImg
> сделать отдельные хинты для каждого узла
Можно показывать вручную. Тут придётся плясать от TVItemAtPos. Посмотри demotreeviewdrag.7z на сайте.