掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
お気に入りの作成で終了時のノードの破棄の方法は (ID:34759)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
よろしくお願いします。 お気に入りの作成に挑戦しています。環境はDelphi6 Personalです。 TreeViewにお気に入りの追加をして、要素をクリックすると WebBrowserに表示させる予定です。 http://www.fhimagine.sakura.ne.jp/delphi/pointer.htm#data を参考にして始めましたがノードの制作時のメモリーを プログラムの終了時に破棄するにはどうしたらいいのでしょうか。 このままでは、メモリーリークを起こしています。 よろしくお願いします。 type PFavData = ^TFavData; //TFavDataのポインタ型 TFavData = record URL: string; //お気に入りのURL FavTitle: string; //URLのタイトル名 end; procedure TForm1.FormCreate(Sender: TObject); var pFav: PFavData; //ポインタ型を宣言 Node:TTreeNode; begin New(pFav); pFav^.URL := 'Folder'; Node:=TreeView1.Items.AddObjectFirst(TreeView1.Selected, 'お気に入り', pFav); end; procedure TForm1.Button1Click(Sender: TObject); var pFav: PFavData; //ポインタ型を宣言 Title:string; begin New(pFav); //メモリ領域を確保 pFav^.URL := 'http://www.yahoo.co.jp/'; Title := 'ヤフー'; TreeView1.Items.AddChildObject(TreeView1.Selected, Title, pFav); New(pFav); //メモリ領域を確保 pFav^.URL := 'http://www.codegear.com/jp/'; Title := 'コードギヤー'; TreeView1.Items.AddChildObject(TreeView1.Selected, Title, pFav); end; procedure TForm1.TreeView1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Node:TTreeNode; begin Node := TTreeView(Sender).GetNodeAt(X,Y); Label1.Caption := PFavData(Node.Data)^.URL; end; //削除ボタン procedure TForm1.Button2Click(Sender: TObject); //削除ボタン var Node:TTreeNode; begin Node := TreeView1.Selected; Node.Delete; end; procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode); begin Dispose(Node.Data); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.