TreeView のデーター管理で

解決


ひっこし  2003-12-15 20:57:18  No: 6198  IP: [192.*.*.*]

この度はお世話になります。

  メインフォームにあるTreeView 内のツリーデーターと、
  非ビジュアルのクラス内の TTreeView ツリーデーターを
  入れ替えは可能でしょうか?
  
  全然アプローチの仕方も分からないので、
  どなたかきっかけを教えていただけないでしょうか?

  宜しくおねがいいたします。

編集    削除
LupinⅢ  URL  2003-12-15 21:36:52  No: 6199  IP: [192.*.*.*]

入れ替えはAとBだけでは出来ないのでAとBとCを用意して
A->C
B->A
C->B
このようにするとAとBが入れ替えられます。
ちょっと面倒ですが・・・、もっと簡単な方法があるかもしれませんが調べていないので分かりませんでした。

編集    削除
Halbow  2003-12-15 23:01:50  No: 6200  IP: [192.*.*.*]

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;

編集    削除
ひっこし  2003-12-16 23:44:05  No: 6201  IP: [192.*.*.*]

LupinⅢ さん、Halbow さん

皆様のおかげで無事解決いたしました!
ありがとうございました。
また、宜しくお願いいたします。

編集    削除