Поиск по сайту

Результаты поиска по тегам 'ttreeview'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • API интернет сервисов
    • ВКонтакте API
    • Google Maps API
    • Yandex деньги
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума
    • Правила форума
    • Нарушения правил форума
    • Предложения об организации форума
    • Проблемы
    • Функции форума
  • Видеокурсы
    • Основная информация
    • Курсы
    • Предложения и голосования за новые курсы
    • Вопросы

Категории

  • Курсы



Фильтр по количеству...

Найдено 7 результатов

  1. Почему этот цикл "видит" только первый уровень дерева? Тогда как правильно организовать поиск нужного TreeViewItem`а по всем узлам, по всему дереву? function TfmTree.FindItemByIndex(id_parent: Integer): TTreeViewItem; var i: Integer; begin Result := nil; for i:= 0 to Pred(TreeView1.Count) do if TreeView1.Items[i].Tag = id_parent then begin Result := TreeView1.Items[i]; break; end; end;
  2. Точнее, как работает наследование. TNodeItem = class(TTreeViewItem) public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; TNodeItem2 = class(TNodeItem) public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; реализация { TNodeItem } constructor TNodeItem.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TNodeItem.Destroy; begin inherited; end; { TNodeItem2 } constructor TNodeItem2.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TNodeItem2.Destroy; begin inherited; end; // Вот самое интересное, не много не понятно почему так procedure TForm1.Button2Click(Sender: TObject); var xTree: TTreeViewItem; begin // Тут все работает xTree := TTreeViewItem.Create(nil); xTree.Text := 'Тест2'; xTree.Parent := TreeView1; end; procedure TForm1.Button3Click(Sender: TObject); var xTree: TNodeItem; begin // И тут все работает xTree := TNodeItem.Create(nil); xTree.Text := 'Тест3'; xTree.Parent := TreeView1; end; procedure TForm1.Button4Click(Sender: TObject); var xTree: TNodeItem2; begin // А вот тут не работает, узел добавляется, а текста нет. xTree := TNodeItem2.Create(nil); xTree.Text := 'Тест4'; xTree.Parent := TreeView1; end;
  3. Поэкспериментировал и нашел простейший случай - узел и в нем два листа. Алгоритм следующий (упрощенно) каждый лист показывает пару key=value при клике в узел остается только key= и показывается листвью с выбором value. Затем мы получаем грубо key=new value (хотя не обязательно) После такой операции вы обязательно получаем то что 2 листа меняются местами С узлом ничего не происходит ни программно ни фактически В более сложных случаях тоже шевеление наблюдается, но я его не изучал подробно
  4. Добрый день! Прошу подсказать как программно выделить элемент дерева.
  5. Такая задача. Хочу создать некоторое дерево вида: Корень -потомок -потомок Корень -потомок -потомок -потомок Корень -потомок -потомок -потомок и записать данную структуру в БД (FB). А потом в обратную сторону - из данных в БД, программно создать эту же структуру. Но как в VCL не нашел Nodes, и absoluteindex. Так сказать не на что опереться в числовом представлении. Попробовал использовать Globalindex - вышла неудача , он выдает "правильный" результат, т.е. какой он по счету только когда все ветви полностью раскрыты. Думаю ладно, если тебе надо чтобы были все ветки раскрыты, пусть будут, решил использовать ExpandetALL а потом уже находить Globalindex, но увы опять неудача, он просто не разворачивает ветки (указатели меняют расположение) , а данные так и лежат свернутые. Нажимаешь на любую ветку и данные разворачиваются. Но код уже отработал и выдал не правильный индекс (такой как при свернутых ветках). Проблема - в каком виде представлять объекты? хотелось бы в числовом по уникальному ID Как их находить? Спасибо.
  6. Мне требуется динамически добавлять и удалять элементы дерева. И чтобы лучше понять как работать с FMX.TreeView.TTreeView я написал простой тестовый примерчик и который не могу заставить работать. Приложение вообще падает. Может подскажите где я ошибаюсь. Описание тестового примера Нужно когда пользователь разворачивает (Expand) элементы дерева, я хочу удалять все дочерние элементы затем добавлять новые дочерние элементы и потом уже пускай родительский TreeViewItem раскрывается (Expand) для показа новых дочерних элементов. Для эмуляции OnExpand и OnCollapse пользуюсь способом, описанным тут: Как можно реализовать в TTreeView события OnExpand и OnCollapse? Тест кейс Достаточно создать корневой элемент, В него добавит дочерний элемент Потом раскрывать (Expand) корневой элемент. И приложение падает. Когда происходит ошибка Добавляешь корневой элемент дерева, потом в него дочерний элемент. Пытаешься развернуть (Expand) корневой элемент (кликая мышкой по плюсику) и приложение падает. Тестовый проект: Test_Tree.zip
  7. Как можно реализовать данное событие а лучше целых 2 события OnExpand и OnCollapsed