Программы   Загрузка Партнерство   О компании Контакты  
 
                    
  Карта Сайта   
   

TListView и TTreeView - Windows Explorer

Автор: Ray Konopka


У меня есть TTreeView и TListView, размещенные точно так же, как это сделано в Windows Explorer (фактически я хочу им придать и то же функциональное назначение). Как мне сделать следующее:

При двойном щелчке на элементе ListView узнать его индекс? Затем, как мне 'открыть' ветку и папку в компоненте TreeView, являющегося 'родителем' данного элемента? (В точном соответствии с функциональностью Проводника, к этому моменту родительский узел TreeView должен уже быть выбран - поэтому, я понимаю, необходимо правильно определить дочерний узел - но я чего-то запутался в синтаксисе).

Ниже приведен пример кода, показывающий как выбрать правильный узел дерева, по которому произведен двойной щелчок.

Как вы можете здесь видеть, ключем здесь является функция NodeAtIndex. Данный пример подразумевает наличие дочерних узлов и индексов, начиная с нуля. Так, если мы подразумеваем что был выбран родительский узел списка элементов, (что является безопасным предположением), то мы можем использовать данный узел как отправной пункт. Методы GetFirstChild и GetNextSibling "отправляют" вас к желаемому узлу.


function TFrmTipExplorer.NodeAtIndex(Index: Integer): TTreeNode;
var
  I: Integer;
begin
  Result := TreeView1.Selected.GetFirstChild;
  for I := 0 to Index - 1 do
    Result := Result.GetNextSibling;
end;

procedure TFrmTipExplorer.ListView1DblClick(Sender: TObject);
begin
  TreeView1.Selected.Expand(False);
  { Выбираем узел дерева, соответствующий "щелканному" элементу списка }
  NodeAtIndex(ListView1.Selected.Index).Selected := True;
end;

           


доставка цветов заказать в магазине и доставка букетов Петербург . Продажа авто из вторых рук - купить чернозем. Щебень, песок, асфальт (крошка). . выкуп долей . Государственный контракт лучшие цены в Москве. Обеспечение государственных контрактов. .


Программы  |  Загрузка  |  Партнерство  |  О компании  |  Контакты

Copyright © LSD Software 2006 - 2011