{ Private \90é\8c¾ }
FBoard: TBoard;
FThreadItem: TThreadItem;
+ procedure CopyTree( dst, src : TTreeNode );
// procedure PrepareFavoriteTree(Favo: TFavoriteItem; Node: TTreeNode);
function GetGikoFavoriteNode(FavFolder: TFavoriteFolder): TTreeNode;
public
{$R *.dfm}
-procedure TFavoriteAddDialog.FormCreate(Sender: TObject);
+procedure TFavoriteAddDialog.CopyTree( dst, src : TTreeNode );
var
- Node : TTreeNode;
- TmpNode : TTreeNode;
+ newNode : TTreeNode;
begin
- FolderTreeView.Items.BeginUpdate;
- FolderTreeView.Items := FavoriteDM.TreeView.Items;
- Node := FolderTreeView.Items.GetFirstNode;
- while Node <> nil do begin
- if not (TObject(Node.Data) is TFavoriteFolder) then begin
- TmpNode := Node;
- Node := Node.GetNext;
- TmpNode.Delete;
- end else begin
- Node := Node.GetNext;
+ while src <> nil do begin
+ if TObject( src.Data ) is TFavoriteFolder then begin
+ newNode := FolderTreeView.Items.AddChildObject( dst, src.Text, src.Data );
+ newNode.ImageIndex := src.ImageIndex;
+ newNode.SelectedIndex := src.SelectedIndex;
+ CopyTree( newNode, src.getFirstChild );
end;
+ src := src.getNextSibling;
end;
+end;
+
+procedure TFavoriteAddDialog.FormCreate(Sender: TObject);
+var
+ src : TTreeNode;
+ node : TTreeNode;
+begin
+ FolderTreeView.Items.BeginUpdate;
+
+ // FavoriteDM \82Ì\83t\83H\83\8b\83_\8aK\91w\82ð\83R\83s\81[
+ FolderTreeView.Items.Clear;
+ src := FavoriteDM.TreeView.Items.GetFirstNode;
+ node := TTreeNode.Create( FolderTreeView.Items );
+ node := FolderTreeView.Items.AddFirst( node, src.Text );
+ node.Data := src.Data;
+ node.ImageIndex := src.ImageIndex;
+ node.SelectedIndex := src.SelectedIndex;
+ CopyTree( node, src.getFirstChild );
if FolderTreeView.Items.GetFirstNode <> nil then begin
FolderTreeView.Items.GetFirstNode.Expanded := True;
if FolderTreeView.Selected = nil then
Exit;
- NewNode := nil;
Node := FolderTreeView.Items.GetFirstNode;
while Node <> nil do begin
FavNode := GetGikoFavoriteNode(Node.Data);
if FavNode = nil then begin
- FavNode := GetGikoFavoriteNode(Node.Parent.Data);
+ if Node.Parent <> nil then
+ FavNode := GetGikoFavoriteNode(Node.Parent.Data);
if FavNode <> nil then begin
NewNode := FavoriteDM.TreeView.Items.AddChildObject(FavNode, Node.Text, Node.Data);
NewNode.ImageIndex := 14;