Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование dxDBTreeView, из DevExpress 
:(
    Опции темы
RST8
  Дата 4.2.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: нет
Всего: 1



Кто может подсказать как правильно использовать этот компанент? В примере использовария идущем вместе с компанентом есть несколько процедур :

Код

procedure TForm1.T1AfterInsert(DataSet: TDataSet);
begin
  if varIsNull(T1.FindField('pr_id').Value) then begin
    if varIsNull(DBTreeView1.DBTreeNodes.MaxKeyFieldValue) then
      T1.FindField('pr_id').AsInteger := 0
    else T1.FindField('pr_id').Value := DBTreeView1.DBTreeNodes.MaxKeyFieldValue + 1;
  end;
end;


procedure TForm1.T1Pr_parentChange(Sender: TField);
begin
  if(IsLoop) then
    ShowMessage('It is Loop');
end;


function TForm1.IsLoop : Boolean;
Var
  dbItemP, dbItem : TdxDBTreeNode;
begin
  Result := False;
  //---Get Selected DBTreeNode
  dbItem := DBTreeView1.DBTreeNodes.GetDBTreeNode(T1.FindField('pr_id').Value);
  //---Get Parent DBTreeNode
  dbItemP := DBTreeView1.DBTreeNodes.GetDBTreeNode(T1.FindField('pr_parent').Value);
  //---Is it loop ?
  if(dbItem <> Nil) and  (dbItemP <> Nil) and (dbItemP <> dbItem) and dbItemP.HasAsParent(dbItem) then Result := True;
end;


procedure TForm1.DBTreeView1AddNewItem(Sender: TObject;
  var DBTreeNode: TdxDBTreeNode);
begin
 if VarIsNull(DBTreeNode.ParentFieldValue) then exit;
 if (DBTreeNode.KeyFieldValue >= 150)
 and (DBTreeNode.KeyFieldValue < 200) then begin
    DBTreeNode.ImageIndex := 0;
    DBTreeNode.SelectedIndex := 0;
    exit;
 end;
  if (DBTreeNode.KeyFieldValue > 200) then begin
    DBTreeNode.ImageIndex := 1;
    DBTreeNode.SelectedIndex := 1;
    exit;
 end;
 DBTreeNode.ImageIndex := 2;
 DBTreeNode.SelectedIndex := 2;
end;



без которых все и так работает. Зачем они нужны? 

О первой процедуре, ее применение делает индексы в таблице описывающей структуру нечетными числами, почему? 

Может это для каких то моментов о которых я не подозреваю даже?
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
RST8
Дата 5.2.2007, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: нет
Всего: 1



Так, раз никто не пользуется этим компанентом, то очень интересно чем пользуетесь для отображения древовидной структуры хранящейся в бд.
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
SergeBS
Дата 6.2.2007, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



RST8, 
Цитата
без которых все и так работает. Зачем они нужны? 

А подумать? ПОКА может и работает. Намек:
1. Первая процедура не делает НИКАКИХ нечетных индексов.
2. Проверка на зацикливание ссылок - необходима.
и т.д.
Цитата
Так, раз никто не пользуется этим компанентом, 

На DelphiKingdom есть статья, как сделать свой компОнент.

PM MAIL   Вверх
RST8
Дата 6.2.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: нет
Всего: 1



Цитата(SergeBS @  6.2.2007,  09:44 Найти цитируемый пост)
А подумать? ПОКА может и работает. Намек:
1. Первая процедура не делает НИКАКИХ нечетных индексов.
2. Проверка на зацикливание ссылок - необходима.


Подумал уже. Далее по пунктам:

1. Это ясно и так, вопрос зачем? Какая в этом необходимость?
2. Значение слова loop мне также известно, что делает процедура понятно. Опять же вопрос в том зачем? При каких это нормальных условиях может образоваться зацикливание? 
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
SergeBS
Дата 7.2.2007, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



И на 1, и на 2: проверка данных на корректность. Зачем она нужна, тоже объяснять? smile
PM MAIL   Вверх
RST8
Дата 7.2.2007, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: нет
Всего: 1



Ладно второй пункт пропустим, но касательно первого очень интересно с для чего делать индексы именно нечетными? Выкинув эту процедуру все вроде бы (тотально тестирования не устраивал)  работает нормально. Вот Ваша цитата из третьего поста 

Цитата

1. Первая процедура не делает НИКАКИХ нечетных индексов.


Так вот индексы как раз нечетными получаются с ее использованием. 
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
SergeBS
Дата 8.2.2007, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



RST8, 
pr_id получает НЕ НЕЧЕТНОЕ, а СЛЕДУЮЩЕЕ по величине  значение.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0432 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.