![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 60
|
![]()
Доброго всем дня. У меня имеется Дерево, Иконки к нему и таблица tRazdels c полем R_Pict в которое занесены индексы картинок.
Хочу чтобы при заполнении дерева каждой ветке присваивались картинки(каждой ветке своя). Код:
![]() Но чето не меняются картинки в дереве, курсор в таблице на последней записи значит по таблице прохожусь. В чем дело - непойму. Может неучел какую-нибудь мелочь? Если нужно, могу привести полный код заполнения дерева. Последний раз редактировалось atihiy2010; 13.03.2011 в 15:55. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
А картинки эти загружены? Компонент, содержащий картинки привязан к дереву?
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 60
|
![]() |
![]() |
![]() |
![]() |
#4 | |
Подтвердите свой е-майл
Регистрация: 19.12.2010
Сообщений: 808
|
![]() Цитата:
Нужно же задавать, когда какую картинку показывать. Примерно так: Код:
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 60
|
![]()
Вот полная процедура заполнения дерева, куда вставить и какой код для решения моей задачи??? Пожалуйста подскажите, два дня мучусь...
procedure TfMain.N10Click(Sender: TObject); //var f,i,s:integer; begin //если таблица пуста, сразу выходим: if tRazdels.IsEmpty then Exit; //если в старом дереве есть узлы, очистим их: TreeView1.Items.Clear; //вначале запросим все главные узлы: Q1.SQL.Clear; Q1.SQL.Add('select * from Razdels where R_Parent=0'); Q1.Open; if Q1.IsEmpty then Exit; //если НД пуст, выходим. //теперь занесем их в дерево: while not Q1.Eof do begin TreeView1.Selected := nil; TreeView1.Items.Add(TreeView1.Selec ted, Q1.FieldByName('R_Name').AsString); Q1.Next; end; //while //делаем запрос, выводящий пару: Родительский узел - Дочерний узел //и поочередно прописываем их в дерево процедурой TreeViewAddChild: Q1.SQL.Clear; Q1.SQL.Append('select r.R_Name, d.R_Name '+ 'from Razdels r, Razdels d '+ 'where r.R_Num=d.R_Parent'); Q1.Open; if Q1.IsEmpty then Exit; //если нет вложенных узлов, выходим Q1.First; while not Q1.Eof do begin TreeViewAddChild(Q1.Fields[0].AsString, Q1.Fields[1].AsString); Q1.Next; end; //while //распахиваем дерево: TreeView1.FullExpand; {Это мой кусок кода для моей задачи. Видимо неправильный} //s:=Treeview1.Items.Count; //while not tRazdels.Eof do //begin //f:=tRazdels['R_Pict']; //For i:=0 to s-1 do //TreeView1.items.item[i].ImageIndex:=f; //tRazdels.Next; //end; end; Может я не туда пишу код куда надо? |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
![]()
{Это мой кусок кода для моей задачи. Видимо неправильный}
s:=Treeview1.Items.Count; //Получаем количество Node while not tRazdels.Eof do begin //Цикл по таблице f:=tRazdels['R_Pict']; //Получили значение индекса картинки For i:=0 to s-1 do //В цикле всем Node присвоили этот номер картинки TreeView1.items.item[i].ImageIndex:=f; tRazdels.Next; //Перешли к следующей записи таблицы end; end; |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 60
|
![]()
Почему всем, я ж по очереди ветки перебираю от 0-й до последней. Блин совсем запутался...
Ну да, понял. Точно. И что с чем местами поменять??? Может поставить for перед while? Но вроде пробывал уже... Последний раз редактировалось atihiy2010; 14.03.2011 в 13:30. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
![]()
до цикла i:= 0
В цикле TreeView1.items.item[i].ImageIndex:=f; Inc(i); if i = s then Break; |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 60
|
![]()
Щас попробую
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 60
|
![]()
Все получилось, большое спасибо. Как говорится ларчик просто открывался...
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проблема с заполнением массива | Freddi Krjuger | Общие вопросы C/C++ | 0 | 22.10.2010 18:12 |
TreeView и ImageList | tropskoy | Общие вопросы C/C++ | 0 | 07.07.2010 11:36 |
Сортировка узлов дерева treeview | gool | Общие вопросы Delphi | 1 | 06.11.2009 09:20 |
Проблема с заполнением | asd48 | Помощь студентам | 1 | 21.04.2009 00:21 |
TreeView и ImageList | Stanislav | Общие вопросы Delphi | 4 | 27.03.2008 01:26 |