Поиск и путь к узлу
- Подробности
- Родительская категория: TTreeView
- Категория: Поиск и путь к узлу
Code: |
// Search a TreeItem through its Text property // Return value is a TreeNodeObject function Form1.TreeItemSearch(TV: TTreeView; SucheItem: string): TTreeNode; var i: Integer; iItem: string; begin if (TV = nil) or (SucheItem = '') then Exit; for i := 0 to TV.Items.Count - 1 do begin iItem := TV.Items[i].Text; if SucheItem = iItem then begin Result := TV.Items[i]; Exit; end else begin Result := nil; end; end; end; |
- Подробности
- Родительская категория: TTreeView
- Категория: Поиск и путь к узлу
Code: |
{ **** UBPFD *********** **** >> Получение узла в TreeView по пути заголовков
Функция выдает узел TTreeNode из дерева TreeView, находящийся по пути, указанному в Path, в котором разделителем уровней является символ Separator. Если узел не найден - выдается nil. Ограничение - заголовки узлов дерева не должны содержать символа Separator.
Зависимости: ComCtrls, Classes, SysUtils Автор: lipskiy, Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., ICQ:51219290, Санкт-Петербург Copyright: Собственное написание (lipskiy) ***************************************************** }
function GetNodeInPath(Path: string; Separator: char; TreeView: TTreeView): TTreeNode; var List: TStringList; Node: TTreeNode; i: integer; s: string; begin Result := nil; if (TreeView = nil) or (TreeView.Items.Count = 0) or (Path = '') or (Separator = '') then exit; List := TStringList.Create; // Меняем сепаратор на первод строки s := StringReplace(Path, Separator, #13#10,[rfReplaceAll]); // Получаем список уровней List.Text := s; // Начинаем с нулевой ноды дерева Node := TreeView.Items[0]; // Проходим по всему списку уровней пути for i := 0 to List.Count - 1 do begin // Ищем имя ноды на текущем уровне while (Node <> nil) and (Node.Text <> List[i]) do Node := Node.getNextSibling; // Нода не найдена if Node = nil then break; // Переходим на уровень ниже if i < List.Count - 1 then Node := Node.getFirstChild; end; List.Free; Result := Node; end;
// Пример использования: procedure TForm1.Button1Click(Sender: TObject); begin TreeView1.Selected := GetNodeInPath('Каталог\Подкаталог', '\', TreeView1); end; |
- Подробности
- Родительская категория: TTreeView
- Категория: Поиск и путь к узлу