2014-09-22 2 views
0

며칠 동안 시도하고 생각한 후에도 여전히 답장을하지 못했습니다. Firemonkey TreeView에서 TreeViewItems를 다시 배열하는 방법을 찾고 있습니다. 드랍 앤 드롭으로 처리하는 것이 좋습니다. VCL에서 효과가 있었던 것은 FMX에 없습니다. 나는 궤도에 올라서는 것을 도울 수있는 누군가가 있기를 바랍니다. - 분명히 누군가가 약간 화가났다. 다시 말해 보자. 동일한 레벨에서 항목을 재정렬하는 방법을 찾을 수 없어 하나의 TreeViewItem-Parent에 속하는 TreeViewItem. 할 수 있습니까?FMX TreeView에서 TreeViewItem을 재정렬하십시오.

답변

0

TTreeView의 항목 순서는 Parents Children 목록의 항목 순서에 따라 다릅니다.

당신은 그래서, 처음 사용 할 항목을 이동하는 방법 AddObject, RemoveObject,은 insertObject 및 정렬 http://docwiki.embarcadero.com/Libraries/XE7/en/FMX.Types.TFmxObject_Methods

와 어린이 목록을 수정할 수 있습니다

: 코드`Item.Parent을 시도하는 동안

Item.Parent.InsertObject(0, Item); 
+0

.InsertObject (0, Item);'이유를 모르겠지만 TreeView에서 아무 일도 일어나지 않습니다. 나는 'TreeView1.Selected.Index : = TreeView1.Selected.Index - 1' (인덱스> 0 일 때)와 TreeView1.Selected.Index : = TreeView1.Selected.Index +를 사용하여 TreeViewItem을 위로 움직일 수 있다는 것을 발견했다. 1 '(인덱스 <개수) 일 때. 드래그 앤 드롭에서 아이템을 집어 들고 두 형제 사이에 놓을 수없는 것처럼 보입니다. 항상 형제의 자녀가되어 버렸습니다. –

+0

내가 말했듯이, 시도 할 때 동일한 레벨 내의 형제 순서는 아무런 변화가 없다. 'TreeView1.Selected.Parent.InsertObject (0, TreeView1.Selected); ' 하지만 'TreeView1.Selected.ParentItem .InsertObject (0, TreeView1.Selected); ' TreeViewItems 형제의 순서가 변경되었지만 선택한 항목이 0에도 불구하고 하단에서 끝납니다. 이 동작을 이해하지 못합니다. 논리를 이해하는 데 도움이되기를 바랍니다. –

+0

죄송합니다, 금발의 순간. 'TreeView1.Selected.ParentItem.Items.Insert (0, TreeView1.SelectedItem);을 시도하십시오. 드래그/드롭 문제는 OnDragXXX 이벤트를 사용하여이 동작을 수동으로 코딩해야 할 수 있습니다. –