Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

TreeView   Найти похожие ветки 

 
kirilllius   (2004-03-05 10:15) [0]

Мастера, подскажите, каким образом можно двигать узлы дерева TreeView вверх, вниз (менять местами) со всем cобержимым? Если можно на примере. Заранее спасибо.


 
Alx2 ©   (2004-03-05 10:18) [1]

Метод moveto?


 
Семен Сорокин ©   (2004-03-05 10:38) [2]

drag&drop?


 
kirilllius   (2004-03-05 10:43) [3]

>Alx2

>Метод moveto
А не подскажите, как он работает. В помощи все по английски, а я с ним не дружу.


 
kirilllius   (2004-03-05 10:51) [4]

Сделал следующее

procedure TfrmServis.Button3Click(Sender: TObject);
var n: TTreeNode;
begin
n := TreeView1.Selected;
if n <> nil then
 if n.GetPrev <> nil then
  n.MoveTo(n.GetPrev, naInsert);
end;

но работает не правильно

узел с уровня 0, перемещает вверх но в узел с уровнем 1, а мне нужно, чтобы он переместился вверх но по уровню 0


 
Alx2 ©   (2004-03-05 10:58) [5]

>kirilllius   (05.03.04 10:43) [3]
Вольный перевод:
****************************
Moves the node to another location in the tree view.
Перемещает вершину (узел) в другое место в Tree View

procedure MoveTo(Destination: TTreeNode; Mode: TNodeAttachMode);
Процедура  ПеренестиВ(ПунктНазначения: TВершинаДерева; Режим: TРежимNodeПрикрепленияВершины);

Description
Описание

The Destination parameter specifies a node that will be this node"s parent or sibling after the move. The Mode parameter specifies the new relationship between this node and the destination node.

Параметр ПунктНазначения указывает вершину, которая будет родительской, либо соседней после перемещения. Параметр Режим указывает тип новой связи между перемещаемой вершиной и вершиной, которая является ПунктомНазначения :)

*****************************

Параметр Mode может принимать следущие значения:
naAdd - делаем соседом (на одном уровне иерархии в дереве, последняя в списке)
naAddFirst - делаем соседом (на одном уровне иерархии в дереве, первая в списке)
naInsert - делаем непосредственно соседом (на одном уровне иерархии)
naAddChild -  делаем в подчиненном уровне (последняя в списке непосредственно подчиненных)
naAddChildFirst -  делаем в подчиненном уровне (первая в списке непосредственно подчиненных)


 
kirilllius   (2004-03-05 11:10) [6]

Сделал следующее

procedure TfrmServis.Button3Click(Sender: TObject);
var n: TTreeNode;
begin
n := TreeView1.Selected;
if n <> nil then
if n.GetPrev <> nil then
 n.MoveTo(n.GetPrev, naInsert);
end;

но работает не правильно

узел с уровня 0, перемещает вверх но в узел с уровнем 1, а мне нужно, чтобы он переместился вверх но по уровню 0


 
Alx2 ©   (2004-03-05 11:17) [7]

>kirilllius   (05.03.04 11:10) [6]
Значит GetPrev дает вершину, которая на уровне 1 сидит.
Для ползанию в пределах нужного уровня так попробуй:

Var
 n: TTreeNode;
Begin
 n := TreeView1.Selected;
 If n <> Nil Then
   If n.getPrevSibling <> Nil Then
     n.MoveTo(n.getPrevSibling, naInsert);
End;


 
kirilllius   (2004-03-05 11:26) [8]

>Alx2
Спасибо, получилось. А как быть с перемещением вниз?
Пробовал

Var
n: TTreeNode;
Begin
n := TreeView1.Selected;
If n <> Nil Then
  If n.getNextSibling <> Nil Then
    n.MoveTo(n.getNextSibling, naInsert);
end;

вообще ничего не происходит

поменял naInsert на naAdd. Текущий узел перемещается в конец, а мне нужно только на один шаг ниже, как быть?


 
Alx2 ©   (2004-03-05 11:33) [9]

>kirilllius   (05.03.04 11:26) [8]
Пофантазировать?

Var
 n, p: TTreeNode;
Begin
 n := TreeView1.Selected;
 If n <> Nil Then p := n.getNextSibling;
 If p <> Nil Then
   If p.getNextSibling <> Nil Then
     n.MoveTo(p.getNextSibling, naInsert)
   Else
     n.MoveTo(p, naAdd)
End;

Но что-то оно мне не нравится. :)))


 
Alx2 ©   (2004-03-05 11:35) [10]

Ой, глюкнул.
Так корректнее:

Var
 n, p: TTreeNode;
Begin
 n := TreeView1.Selected;
 If n <> Nil Then
   Begin
     p := n.getNextSibling;
     If p <> Nil Then
       If p.getNextSibling <> Nil Then
         n.MoveTo(p.getNextSibling, naInsert)
       Else
         n.MoveTo(p, naAdd)
   End
End;


 
kirilllius   (2004-03-05 11:41) [11]

>Alx2

Благодарствую, все заработал ;-)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.033 c
1-1078829136
Q
2004-03-09 13:45
2004.03.28
компонент для работы с dbf


1-1078923420
Man
2004-03-10 15:57
2004.03.28
как работать с форматом p3


1-1078382310
girich
2004-03-04 09:38
2004.03.28
Вопрос по TServiceApplication (события OnCreate и OnStart).


14-1077632293
Zendor
2004-02-24 17:18
2004.03.28
Delphi 8


14-1078284054
Andrey V.
2004-03-03 06:20
2004.03.28
Хочу печатать штрих коды





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский