Конференция "KOL" » TreeView + Checkbox [Delphi, Windows]
 
  • QAZ (18.05.09 16:34) [0]
    Вобщем дерево может показывать чекбоксы
    1) как сделать чтоб при выделении ветки выделялись все вложеные,
    а при выделении вложеных частично чекался родитель-вобщем как
    в "нормальных" деревьях в инсталяторах и файломанагерах
    2) и как собственно получить список выделеных "файлов" с полными
    путями в дереве
    воот...
    я понимаю что тут рекурсии и все такое ,только
    дерево так устроено что мой мозг отказывается это понимать :(

    может есть у кого куски готового кода или ссылки на них
  • Дмитрий К © (19.05.09 19:02) [1]
    1) http://dmiko.mail333.su/other/tv.7z
    2) У TreeView есть метод TVItemPath, который как раз возвращает полный путь в дереве. Нужно пройтись по всем узлам дерева и те, у которых нет детей и стоит флажок, добавить в список.
  • QAZ (19.05.09 19:32) [2]
    о да ништяк
    ты даже мой прошлый вопрос применил :)
    а частичная чеканутость возможна только с самопальными картинками ?

    пройтись надо рекурсивно ?
    можеш хотябы скелет процедуры накинуть :( можно даже на исконно русском :)
  • Дмитрий К © (19.05.09 20:13) [3]

    > а частичная чеканутость возможна только с самопальными картинками
    > ?

    да, насколько мне известно.

    procedure GetChecked(ParentItem: Cardinal; var SL: PStrList);
    var Item: Cardinal;
    begin
     Item := TV.TVItemChild[ParentItem];
     while Item <> 0 do
     begin
       if TV.TVItemStateImg[Item] <> tvisUnсhecked then
       begin
         if TV.TVItemHasChildren[Item] then
           GetChecked(Item, SL)
         else
           SL.Add(TV.TVItemPath(Item, '\'));
       end;
       Item := TV.TVItemNext[Item];
     end;
    end;

  • QAZ (19.05.09 21:28) [4]
    спасибо :)
    типерь ничто не остановит меня от захвата мира
  • MTsv DN (19.05.09 21:35) [5]
    [offtop]Все, абздец. QAZ теперь весь Мир зачеканными деревьями засадит.
    [/offtop]
  • QAZ (10.06.09 12:05) [6]
    возник вопрос
    как кашерно объединить дерево с листвиевом
    чтоб в дереве были "папки" а в листе "файлы"
    ("файл" имееца в виду  последний блок в строке типа папка\папка\папка\файл, кароче готовый список строк)

    тобиш дерево создаем из папок к ним чепляем указатель
    на список файлов в даной папке, и кагда выделяеш папку
    список файлов листвиевица

    и чтоб вся эта прелесть чекалась да частично перечекивалась ?
 
Конференция "KOL" » TreeView + Checkbox [Delphi, Windows]
Есть новые Нет новых   [134431   +11][b:0][p:0.001]