ShellTreeViewのメモリーリーク解決法

解決


武田  2007-12-04 00:06:24  No: 28806

ご教授お願いします。環境はWindowsXP  Delphi 6 Personalです。
標準でついているコンポーネントShellTreeViewのメモリーリークのバグ対策を下記のサイトで読みました。
http://fishers.homeunix.net/pc/delphi/treeview.html
私の環境では、対象ファイルはたぶんこれだと思いますが・・・。
\install\program files\borland\delphi6\Demos\ShellControls\ShellCtrls.pasにあります。
内容はShellCtrls.pasを修正して、インストールし直すことだと思いますが。
標準添付のコンポーネントを修正して更新インストールするなど、恐れ多くて、躊躇しています。
そこで標準コンポーネントの修正、インストールで更新する手順方法を教えて頂きたいのですが、
(1)ファイルを修正後、「コンポーネント」メニューの「コンポーネントのインストール」でShellCtrls.pasを
指定して、通常と同じように「OK」でインストールするのでしょうか?
(2)または事前に、削除などなにか準備しておく必要が有るのでしょうか?
その他、アドバイスがありましたら、よろしくお願いします。


そうねぇ  2007-12-04 00:26:34  No: 28807

ドコを変えるかにもよるけど、単にファイルの書き換えだけで大丈夫じゃないの?
書き換えの副作用でも心配なら、自分のプロジェクトのフォルダにShellCtrls.pasをコピーして、それを書き換えればいいよ。


KHE00221  2007-12-04 01:25:50  No: 28808

おそらく
\install\program files\borland\delphi6\Demos\ShellControls\ShellCtrls.pas
は検索パスに入っていないので直接修正しても意味がありません
(再構築の対象にならない)

[CTRL]+クリックでソースが見つからないはず

\install\program files\borland\delphi6\Demos\ShellControls\
を検索パスにいれるか、
修正後のShellCtrls.pasを検索パスのどこか(lib等)にコピーするか、
修正後、作成した .dcu を lib にコピーして下さい。

検索パスにソースをコピーしてしまうと再構築の際 ShellControls.pas を毎回再構築しますので、再構築に時間がかかってしまいます


試してみたら  2007-12-04 01:35:30  No: 28809

自分のプロジェクトのフォルダにShellCtrls.pasをコピーして、それを書き換えてみたら、確かに2個のメモリーリークが無くなったね。
出来たShellCtrls.dcuを Libフォルダに上書きコピーしておけばイイよ。


武田  2007-12-04 02:11:30  No: 28810

そうねさん、KHE00221さん、試してみたら さん早速教えて頂きありがとうございました。
あばりこの辺の理屈が判らないですが要約すると
(1)他のフォルダにソースファイルをコピーする。そして修正する。
(2)そのフォルダに検索バスを通す。
(3)コンポーネントメニューのコンポーネントのインストールを実行する。
(4)出来たdcuファイルをLibに上書きコピーする。
これでよろしいんでしょうか。
すみません、なんども、よろしくお願いします。


マッコ  2007-12-04 04:05:52  No: 28811

ここに
http://qc.borland.com/wc/qcmain.aspx?d=8322


"理屈の判らない"貴兄にお約束のツッコミ  2007-12-04 05:39:21  No: 28812

(1)ファイルをコピーする「他のフォルダ」は、自分のプロジェクトソースのフォルダ。
(2)検索バス(←バスを通してどうするの^^パス、とツッコミ)を通す必要なし。
(3)コンポーネントの再インストール必要なし。


武田  2007-12-04 06:37:23  No: 28813

マッコさん、"理屈の判らない"貴兄にお約束のツッコミ さん
ありがとうございます。
判りました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加