Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Проблемы с DBTreeView


Автор: RST8 12.2.2007, 21:52
Надо:
1. Древовидная структура описанная в БД.
2. Каждому элементу соответствует уникальный код, который ни при каких условиях (удаление и создание заново) не может быть присвоен какому либо другому элементу.
3. Стандартная функциональность (вот здесь проблемы)

Пробовал dxDBTreeView из DevExpress. С ним такие проблемы: По правой кнопке нет нормального (вобще никакого практически) выделения, соответственно невозможно (?) реализовать нормально контекстное меню по дереву. 

Также пробовал надстройку над VirtualTreeview, DynamicTreeView (For more information visit our website - http://www.table-report.com . Andrew Yushev  Borus software) Здесь не получается сортировка дерева. И еще возникает вопрос касательно п.2. изложенного выше.

 smile  smile  smile 

 

Автор: kobra 12.2.2007, 23:26
не уверен что правилно понял, но,
я обявляю свои обект, наследник нода, с дополнительними своиствами, подстраиваю под задачу

Автор: RST8 12.2.2007, 23:52
Цитата(kobra @  12.2.2007,  23:26 Найти цитируемый пост)
не уверен что правилно понял, но,
я обявляю свои обект, наследник нода, с дополнительними своиствами, подстраиваю под задачу 


Это Вы про VT?  smile (если не трудно  smile )

Автор: kobra 13.2.2007, 12:47
вот один из реализации.
тут обьявляется класс
Код

TNodeObject = class(TObject)
public
  IDGen: integer;
  ID0: integer;
  ID1: integer;
  ID2: integer;
  ID3: integer;
  Caption: WideString;
  Text: WideString;
end;

тут создоется
Код

NodeObject := TNodeObject.Create();
  NodeObject.IDGen := 0;
  NodeObject.ID0 := StoredProc.FieldValues['OrgID'];
  NodeObject.ID1 := 0;
  NodeObject.ID2 := 0;
  NodeObject.ID3 := 0;
  NodeObject.Text := StoredProc.FieldValues['Organization'];
  NodeObject.Caption := StoredProc.FieldValues['Organization'];
  Node := Tree.Items.AddChildObject(nil, NodeObject.Text, NodeObject);

тут тут уничтожается
Код

procedure ClearOrganizationTreeView(Tree: TTntTreeView);
var
  I: Integer;
  NodeObject: TNodeObject;
begin
  if Tree.Items.Count > 0 then
  begin
    for I := 0 to Tree.Items.Count - 1 do
    begin
      NodeObject := TNodeObject(Tree.Items.Item[I].Data);
      FreeAndNil(NodeObject);
    end;
    Tree.Items.Clear();
  end;
end;

Автор: bjjzpp 3.11.2007, 00:22
kobra
подскажите в какой процедуре прописать этот код
Код

NodeObject := TNodeObject.Create();
  NodeObject.IDGen := 0;
  NodeObject.ID0 := StoredProc.FieldValues['OrgID'];
  NodeObject.ID1 := 0;
  NodeObject.ID2 := 0;
  NodeObject.ID3 := 0;
  NodeObject.Text := StoredProc.FieldValues['Organization'];
  NodeObject.Caption := StoredProc.FieldValues['Organization'];
  Node := Tree.Items.AddChildObject(nil, NodeObject.Text, NodeObject);


Плиз...

Автор: kobra 5.11.2007, 09:15
обычно лично я пишу все это, в отделном модуле. и процедура соответственно моя, например
procedure InicializeNodeObject(нужные параметри)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)