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

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

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2007, 01:37   #11
Scorpeon
Пользователь
 
Регистрация: 06.04.2007
Сообщений: 36
По умолчанию

кажись понял, как для простой категории узнать индекс я знаю а если там будет дофига под категорий, и всего такого, что тогда?
Допустим:

производство
цех1
Цех2
Цех3
цех4
Закупка
продажа
работа

как для продажи узнать индекс?
Scorpeon вне форума Ответить с цитированием
Старый 30.05.2007, 05:30   #12
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Scorpeon Посмотреть сообщение
как для продажи узнать индекс?
если програмно, то тупо перебером находишь нужный элемент и узнаешь его AbsoluteIdex, а так просто считаешь сколько элементов над ним находица, такой и индекс
pu4koff вне форума Ответить с цитированием
Старый 30.05.2007, 05:39   #13
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

можно еще при создании дерева прописывать у элементов какие-нить данные (какой-нить код или еще что).
допустим пр исоздании если написать:
Код:
var
  i: pinteger;
begin
  new(i);
  i^ := 10;
  treeview1.Items.Add(nil,'123').Data := i;
то потом на OnChange можно уже смотреть че записано в свойстве data и уже действовать по ситуации:
Код:
if inttostr(integer(node.data^)) = 10 then //
pu4koff вне форума Ответить с цитированием
Старый 30.05.2007, 12:33   #14
Scorpeon
Пользователь
 
Регистрация: 06.04.2007
Сообщений: 36
По умолчанию

pu4koff пасибо большое и еще один вопрос, а вот допустим у мя уже создана категория 123, как уже зделаной присвоить data?
Scorpeon вне форума Ответить с цитированием
Старый 30.05.2007, 12:45   #15
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Scorpeon Посмотреть сообщение
pu4koff пасибо большое и еще один вопрос, а вот допустим у мя уже создана категория 123, как уже зделаной присвоить data?
ну если этот элемент первый, то пишешь:
Код:
var
  i: pinteger;
begin
  new(i);
  i^ := 10;
  treeview1.Items.Item[0].Data := i;
end;
ну я хз... мож еще как-то можно... я с этим копонентом вапще не работал )
ну если это не на первом уровне,а дите первого элемента, то:
treeview1.Items.Item[0].Item[0].Data := i;
ну и дальше по такому принципу. При заполнении дерева в общем проще
pu4koff вне форума Ответить с цитированием
Старый 30.05.2007, 13:08   #16
Scorpeon
Пользователь
 
Регистрация: 06.04.2007
Сообщений: 36
По умолчанию

огромное пасибо, и еще самый последний вопрос, когда у меня допустим ветвь 123 позначена индексом 5, тока как это проверить. тоесть If а дальше что, потому что у мя чет не хочет получаться.
я пишу if treeview1.Items.Item[5].Data then showmessage('получилось'); или там Selected надо?
Scorpeon вне форума Ответить с цитированием
Старый 30.05.2007, 15:29   #17
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

ну тебе данные с чем-то проверить надо:
if integer(treeview1.Items.Item[5].Data^) = 10 then showmessage('получилось');
pu4koff вне форума Ответить с цитированием
Старый 14.11.2007, 16:18   #18
Yurek
Пользователь
 
Регистрация: 27.08.2007
Сообщений: 24
По умолчанию

[QUOTE=pu4koff;21561]ну например:
в OnChange дерева пишешь:
Код:
if (Node.Text = 'Цех1') then //загружаем в ListView что соответствует первому цеху
else if (Node.Text = 'Цех2') then //загружаем в ListView что соответствует второму цеху
...
Пытаюсь выполнить эту процедуру
И нарываюсь на
[Error] Unit1.pas(131): Statement expected, but expression of type 'Boolean' found
Что? Где? Куда? Подскажите
Yurek вне форума Ответить с цитированием
Старый 14.11.2007, 17:52   #19
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

[QUOTE=Yurek;48051]
Цитата:
Сообщение от pu4koff Посмотреть сообщение
ну например:
в OnChange дерева пишешь:
Код:
if (Node.Text = 'Цех1') then //загружаем в ListView что соответствует первому цеху
else if (Node.Text = 'Цех2') then //загружаем в ListView что соответствует второму цеху
...
Пытаюсь выполнить эту процедуру
И нарываюсь на
[Error] Unit1.pas(131): Statement expected, but expression of type 'Boolean' found
Что? Где? Куда? Подскажите
Ошибка в синтаксисе. Проверьте написание кода процедуры. Вы что-то пропустили.
Если вы тупо скопировали предложенное, то это - следующие друг за другом операторы THEN ELSE...
mihali4 вне форума Ответить с цитированием
Старый 15.11.2007, 15:49   #20
Yurek
Пользователь
 
Регистрация: 27.08.2007
Сообщений: 24
По умолчанию

Вот процедура
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if(Node.Text='проап')then ListBox1.Items.LoadFromFile('C:\Док умент.txt')
if else (Node.Text='віпапва') then ListBox1.Items.LoadFromFile('C:\Док умент1.txt');
end;
Компилирую и
[Error] Unit1.pas(131): Missing operator or semicolon
[Error] Unit1.pas(136): Statement expected but end of file found
Подскажите где ошибка. Будьте добры.
Yurek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TreeView и БД Constellation БД в Delphi 12 27.09.2008 15:22
TreeView _SERGEYX_ Общие вопросы Delphi 1 01.09.2008 17:29
Treeview forzi Помощь студентам 4 04.05.2008 23:50