Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2013, 13:01   #1
Qwerik
Пользователь
 
Регистрация: 05.04.2010
Сообщений: 23
По умолчанию иконки TreeView

Не получается установить иконки в узлах дерева. Есть условие, что при определенном значении поля "а" в БД, рядом с узлом устанавливалась определенная иконка. Данные берутся из БД SQL. Иконки в ImageList.
Пишу так:
Код:
procedure TForm1.TreeView1GetImageIndex(Sender: TObject; Node: TTreeNode);
begin
if ADOQuery1.FieldByName('а').Value='1' then   Node.ImageIndex:=0
else
  if ADOQuery1.FieldByName('а').Value='2' then Node.ImageIndex:=2
else
  if ADOQuery1.FieldByName('а').Value='3' then  Node.ImageIndex:=1 ;
end;
При выполнении устанавливается иконка для значения 3 на все узлы. Как это исправить?
Qwerik вне форума Ответить с цитированием
Старый 23.01.2013, 13:25   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

А Вы когда по дереву кликаете - в АДОКвери курсор смещаете на соответаствующий дереву элемент?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 23.01.2013, 13:36   #3
Qwerik
Пользователь
 
Регистрация: 05.04.2010
Сообщений: 23
По умолчанию

Хм... Нет. Не подскажете, каким образом?
Qwerik вне форума Ответить с цитированием
Старый 23.01.2013, 14:02   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Кликаете по ноде, перемещаете функцией locate в АДОКвери на соответствующий этой ноде элемент а уже потом проверяете, какую картину вставлять
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 24.01.2013, 18:10   #5
Qwerik
Пользователь
 
Регистрация: 05.04.2010
Сообщений: 23
По умолчанию

Я не совсем понимаю как это в запросе написать.
в АДОКвери у меня простой запрос:
Код:
select null as 'i', N, a
FROM  table1
В TreeView только данные из столбца N.
А иконки зависят от столбца а.
Qwerik вне форума Ответить с цитированием
Старый 24.01.2013, 19:26   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
ADOquery1.Locate('N',VarArrayOf([TreeView1.Selected.Text]),[]);
If ADOQuery1.FieldByName('а').Value='1' ...
//ну и дальше Ваш код

А еще можно (и проще сделать) через фильтр:

Код:
ADOQuery1.Filter:='N='+QuotedStr(TreeView1.Selected.Text);
ADOQuery1.Filtered:=true;
ADOQuery1.First;
... и тут Ваш код
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 24.01.2013 в 19:52.
Sciv вне форума Ответить с цитированием
Старый 24.01.2013, 19:54   #7
Qwerik
Пользователь
 
Регистрация: 05.04.2010
Сообщений: 23
По умолчанию

Sciv, спасибо, но не помогло...
Qwerik вне форума Ответить с цитированием
Старый 24.01.2013, 20:18   #8
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

приложить в архиве проект вместе с базой можете?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 24.01.2013, 20:50   #9
Qwerik
Пользователь
 
Регистрация: 05.04.2010
Сообщений: 23
По умолчанию

К сожалению, не могу. Боюсь, что владельцу базы это не понравится.
Qwerik вне форума Ответить с цитированием
Старый 24.01.2013, 20:52   #10
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Код:
select null as 'i', N, a
FROM  table1
Это SQL?
Тогда я бы советовал:
1. Изменить слово null на что-то другое, так как null - это ключевое слово. Может я чего и не понимаю, но как вы вообще поле назвали null, как у вас это получилось?
2. Псевдоним поля надо записывать без апострофов.

Извините, если мои слова показались глупыми, я не такой уверенный знаток SQL.
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ASP.NET C# компонент TreeView. Перетащить какой - либо пункт меню из TreeView в TextBox Claster ASP.NET 0 02.01.2013 18:59
Иконки akosh12345 Общие вопросы Delphi 14 14.05.2010 19:47
Иконки Killbrum Свободное общение 9 18.08.2008 01:00