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

-=J S=-
...
Рейтинг: 0 / 0
12.10.2003, 13:54
    #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
12.10.2003, 14:12
    #32290735
Ильшат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался... Поправьте ручки
...
Рейтинг: 0 / 0
12.10.2003, 15:00
    #32290746
Ильшат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался... Поправьте ручки
Все что ли? Никто не знает?
...
Рейтинг: 0 / 0
12.10.2003, 15:04
    #32290749
Антон Ковалев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался... Поправьте ручки
Просто любопытствую, а зачем говорить, что дети есть, если их нет?
...
Рейтинг: 0 / 0
12.10.2003, 15:10
    #32290751
Ильшат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался... Поправьте ручки
В общем, картина такая:

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

Ну нету "плюсика"! Чтоб его....
...
Рейтинг: 0 / 0
12.10.2003, 15:30
    #32290754
drbond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался... Поправьте ручки
А откуда узел позвольте узнать будет осведомлён о том, что у него есть дети?
Вы создаёте пустой узел верхнего уровня. Так и не будет плюсика. Добавьте к этому пустому узлу любого "ребёнка", тогда и плюсик появится :-)
А HasChildren видимо в данном случае не срабатывает, даже если стоит в true.
...
Рейтинг: 0 / 0
12.10.2003, 15:48
    #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
12.10.2003, 15:51
    #32290757
Задолбался... Поправьте ручки
Чтобы нарисовался плюс, нужно не задавать свойство, а добавлять фиктивный дочерний узел, а при открытии тот узел удалять и добавлять настоящие...

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

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

2 Victor

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

Видел ???

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

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

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


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