この度はお世話になります。
メインフォームにあるTreeView 内のツリーデーターと、
非ビジュアルのクラス内の TTreeView ツリーデーターを
入れ替えは可能でしょうか?
全然アプローチの仕方も分からないので、
どなたかきっかけを教えていただけないでしょうか?
宜しくおねがいいたします。
入れ替えはAとBだけでは出来ないのでAとBとCを用意して
A->C
B->A
C->B
このようにするとAとBが入れ替えられます。
ちょっと面倒ですが・・・、もっと簡単な方法があるかもしれませんが調べていないので分かりませんでした。
Halbow です。
TTreeView.Items.Assign() を使えばコピーできるんですね。
LupinIII さんの提案通りにしてみるとうまくいきます。
{ Private 宣言 }
public
procedure ExchangeTreeViewItems(TV1,TV2:TTreeView);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.ExchangeTreeViewItems(TV1,TV2:TTreeView);
var
tempTV:TTreeView;
begin
tempTV := TTreeView.Create(nil);
tempTV.Visible := false;
tempTV.Parent := self;
try
tempTV.Items.Assign(TV1.Items);
TV1.Items.BeginUpdate;
TV1.Items.Assign(TV2.Items);
TV1.Items.EndUpdate;
TV2.Items.BeginUpdate;
TV2.Items.Assign(tempTV.Items);
TV2.Items.EndUpdate;
finally
tempTV.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ExchangeTreeViewItems(TreeView1,TreeView2);
end;
LupinⅢ さん、Halbow さん
皆様のおかげで無事解決いたしました!
ありがとうございました。
また、宜しくお願いいたします。