有關TREEVIEW的子項目移動後的復元 |
答題得分者是:Mickey
|
qq_911228
一般會員 發表:30 回覆:22 積分:10 註冊:2003-09-29 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
qq_911228 你好: 不知有沒有誤會你的意思, 你是要 ListBox DragAndDrop To TreeView 時, "自動歸回原位" 是嗎 ? Sample Code 如下 :
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); var Node : TTreeNode; begin Node := TreeView1.Items.GetNode(HTreeItem(ListBox1.Items.Objects[ListBox1.ItemIndex])); if Node<>nil then Node.Text := ListBox1.Items[ListBox1.ItemIndex]; end; procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer); begin // 記住原來的 TTreeNode.ItemID ListBox1.AddItem(TreeView1.Selected.Text,TObject(TreeView1.Selected.ItemID)); TreeView1.Selected.Text := '(Empty)'; end; |
qq_911228
一般會員 發表:30 回覆:22 積分:10 註冊:2003-09-29 發送簡訊給我 |
謝謝~~
我要的就是這樣~~
但我去執行時,紅色的部份被指出是錯誤,
不知道有再需要修改什麼嘛?
引言: qq_911228 你好: 不知有沒有誤會你的意思, 你是要 ListBox DragAndDrop To TreeView 時, "自動歸回原位" 是嗎 ? Sample Code 如下 :procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); var Node : TTreeNode; begin Node := TreeView1.Items.GetNode(HTreeItem(ListBox1.Items.Objects[ListBox1.ItemIndex])); if Node<>nil then Node.Text := ListBox1.Items[ListBox1.ItemIndex]; end; procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer); begin // 記住原來的 TTreeNode.ItemID ListBox1.AddItem(TreeView1.Selected.Text,TObject(TreeView1.Selected.ItemID)); TreeView1.Selected.Text := '(Empty)'; end; |
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
qq_911228
一般會員 發表:30 回覆:22 積分:10 註冊:2003-09-29 發送簡訊給我 |
不好意思~~
再跟你請教一下~~
如果我一次多選的話~~
要怎麼去判斷~~
還有就是我又提一個有關的新問題~~
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41090
希望再麻煩你一下~~
謝謝您的撥冗~~
引言: >>< face="Verdana, Arial, Helvetica"> |
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
用 TListBox.Selected[Index] 判斷, 這問題應該可以自己嚐試解決, 這樣才會有收穫喔...加油
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); var Node : TTreeNode; i:integer; begin for i:=0 to ListBox1.Items.Count-1 do begin if ListBox1.Selected[i] then begin Node := TreeView1.Items.GetNode(HTreeItem(ListBox1.Items.Objects[i])); if Node<>nil then Node.Text := ListBox1.Items[i]; end; end; end;發表人 - Mickey 於 2003/11/26 11:58:18 |
qq_911228
一般會員 發表:30 回覆:22 積分:10 註冊:2003-09-29 發送簡訊給我 |
真是不好意思~~~
我現在又有一個問題~~
因問之前只有一個listbox~~~所以將item又丟回treeview時,
被丟回的節點位置是對的,
但現在有兩個以上的listbox,則listbox的資料有可能是來還丟來丟去,
最後再丟回treeview,則此時節點的位置就錯了~~
不知道是不是listbox在戶丟的時,要記錄tobject的內容,但我對語法不熟,
所以請教你一下,謝謝。
3: //from listbox to listbox
begin
for j:= resource_list.Items.Count-1 downto 0 do
begin
if resource_list.Selected[j] then
begin target_list.AddItem(resource_list.ItemS.Strings[j],TObject(resource_tree.Selections[j].ItemID));
resource_list.Items.Delete(j);
end;
end;
end;
引言: 用 TListBox.Selected[Index] 判斷, 這問題應該可以自己嚐試解決, 這樣才會有收穫喔...加油procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); var Node : TTreeNode; i:integer; begin for i:=0 to ListBox1.Items.Count-1 do begin if ListBox1.Selected[i] then begin Node := TreeView1.Items.GetNode(HTreeItem(ListBox1.Items.Objects[i])); if Node<>nil then Node.Text := ListBox1.Items[i]; end; end; end;發表人 - Mickey 於 2003/11/26 11:58:18 |
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
改的通用一些 :
Multi-Select 請自己加上
procedure TForm1.TreeViewDragDrop(Sender, Source: TObject; X, Y: Integer); var Node : TTreeNode; begin if Source is TListBox then begin Node := TreeView1.Items.GetNode(HTreeItem(TListBox(Source).Items.Objects[TListBox(Source).ItemIndex])); if Node<>nil then Node.Text := TListBox(Source).Items[TListBox(Source).ItemIndex]; end; end; procedure TForm1.ListBoxDragDrop(Sender, Source: TObject; X, Y: Integer); begin // 記住原來的 TTreeNode.ItemID if Source is TTreeView then begin TListBox(Sender).AddItem(TTreeView(Source).Selected.Text,TObject(TTreeView(Source).Selected.ItemID)); TTreeView(Source).Selected.Text := '(Empty)'; end else if Source is TListBox then begin TListBox(Sender).AddItem(TListBox(Source).Items[TListBox(Source).ItemIndex], TListBox(Source).Items.Objects[TListBox(Source).ItemIndex]); end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |