//ドロップ処理
//ListView1からItemをTreeView1にドロップした時の処理
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
i: Integer;
loop: Boolean;
prev_section, next_section, key, value: String;
pt: TPoint;
begin
//ドロップしたのが、どのNodeかを特定
next_section := TreeView1.GetNodeAt(X, Y).Text;
if Source is TListView then
begin
i := 0;
loop := True;
//元々選択されていたNodeを特定
prev_section := (Sender as TTreeView).Selected.Text;
if next_section <> prev_section then
begin
//以下のループでドラッグされた(選択されていた)ListView1のItemを順番に
//調べて、ドラッグされたItemはドラッグ先のNodeへ変更
while (i < ListView1.Items.Count) do
begin
if ListView1.Items[i].Selected then
begin
key := ListView1.Items[i].Caption;
value := ListView1.Items[i].SubItems.Strings[0];
FListIni.DeleteKey(prev_section, key);
FListIni.WriteString(next_section, key, value);
ListView1.Items[i].Delete;
dec(i, 1);
end;
inc(i, 1);
end;
end;
end;
end;
|