powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Задолбался... Поправьте ручки
25 сообщений из 26, страница 1 из 2
Задолбался... Поправьте ручки
    #32290728
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заполняю TTreeView данными.
Свойство HasChildren устанавливаю в true по какому-то условию ( оно выполняется, проверял). Однако, "плюсик" не рисуется. ShowButtons := True;
В чем дело?
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290729
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно ты заполняещь TreeView однако ...
-=J S=-
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290730
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чего странного?... Наставь на путь истинный, что ли
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290731
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не... Ну че, вот так, удивились чужому отличию, потешились и ушли?
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290733
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не ну если у тебя у объекта детей нету то как
ты можшь поставить HasChildren =true ???

-=J S=-
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290734
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi Help писал:Description

HasChildren is true if the node has subnodes, or false if the node has no subnodes. If ShowButtons of the tree view is true, and HasChildren is true, a plus (+) button will appear to the left of the node when it is collapsed, and a minus (-) button will appear when the node is expanded.

Note: If a node has no children, setting HasChildren to true will show a (+) plus button, but will not add any child nodes and the node cannot be expanded.
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290735
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290746
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все что ли? Никто не знает?
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290749
Фотография Антон Ковалев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто любопытствую, а зачем говорить, что дети есть, если их нет?
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290751
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, картина такая:

Есть дерево. Грузиться из таблицы в базе данных (Неважно какой).
Чтобы ускорить процесс отображения, я читаю не всю структуру дерева, а только верхний уровень, а HasChildren устанавливаю, если у этого узла есть дети. А заполняю детей конкретного узла при выборе этого узла или при его развороте (нажатии на "плюсик").

Ну нету "плюсика"! Чтоб его....
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290754
Фотография drbond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А откуда узел позвольте узнать будет осведомлён о том, что у него есть дети?
Вы создаёте пустой узел верхнего уровня. Так и не будет плюсика. Добавьте к этому пустому узлу любого "ребёнка", тогда и плюсик появится :-)
А HasChildren видимо в данном случае не срабатывает, даже если стоит в true.
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290756
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
......., ..... .... ... ..........!
Так....
Вот код, возьмите и запустите! Никаких чайлдов не создается, а "плюсики" есть!
За.... Вас!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls;

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    procedure FormCreate(Sender: TObject);
    procedure TreeView1Expanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  TreeView1.Items.AddChild( nil, 'Этот узел - родитель! Нет у него детей! ' +
                                 'А плюсик - есть!');
  TreeView1.Items[  0 ].HasChildren := True;
end;

procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
begin
  if Node.HasChildren and ( Node.Count =  0 ) then
    TreeView1.Items.AddChild( Node, 'А это добавили при раскрытии узла!');
end;

end.


Списиальна для доктора бунда:

Borland Delphi писал:Description
...
Note: If a node has no children, setting HasChildren to true will show a (+) plus button, but will not add any child nodes and the node cannot be expanded .
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290757
Чтобы нарисовался плюс, нужно не задавать свойство, а добавлять фиктивный дочерний узел, а при открытии тот узел удалять и добавлять настоящие...

см. http://www.delphikingdom.com/helloworld/dbtreeview.htm#01
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290759
Фотография Антон Ковалев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Ильшат

Пожалуй сделаю себе так же, а то у меня то же дерево болшое в базе хранится....
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290761
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Антон
Да ради бога

2 Victor

Да так-то оно так, только почему плюсик не рисуется, если я ручками HasChildren устанавливаю. В хелпе черным по белому написано, что "плюсик" должен рисоваться....
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290769
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
// Добавим фиктивную (пустую) дочернюю ветвь только для того,
// чтобы был отрисован [+] на ветке и ее можно было бы раскрыть
TreeCompanies.Items.AddChildObject(TreeNode , '' , nil);

Видел ???

-=J S=-
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290772
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джипик, видел я это!
Посмотри, я там кодик скинул, там без всяких фиктивных узлов это реализуется. Только у меня не работает, ха-ха-ха! Ёёёёёёёёёёёё...............!
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290783
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогды незнаю ...
-=J S=-
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32290784
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот и я не знаю.
А так спасиба усем!
Сделал пока с фиктивными узлами
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32291658
Малиновский Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты грузи только видимый уровень, и еще один следующий по глубине... У меня работает. (С TVirtualTreeView, правда.)
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32292016
Дмитрий Мыльников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно помню, то кроме AddChild вроде как есть ещё одна функция для добавления узлов к дереву? Модет быть попробовать через неё узлы добавлять?
Кстати, я хорошо помню, что у меня как раз все плюсики рисовались без вставленных узлов. Там наоборот приходилось их выключать. Только это было давно и делалось средствами WinAPI.
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32292223
Papka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Ильшат

Я делаю точно так-же как ты (гружу уровень, устанавливаю HasChildren) и все происходит нормально. Посмотри свойство AutoExpand вроде. Сильно смахивает что ноды раскрываются и вот тогда если нет чилдренов, то плюсы/минусы пропадают.
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32292341
Фотография Ильшат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AutoExpand := false;

Хер его знает, почему, но не работает.
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32292488
Papka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда точно хз
...
Рейтинг: 0 / 0
Задолбался... Поправьте ручки
    #32302461
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Найди в сети TElTree, там есть свойство ForceButtons - как раз то, что тебе нужно...
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Задолбался... Поправьте ручки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]