喫茶XRAYトップページ


[1462] 休業中?だったの?返信 削除
2007/12/4 (火) 20:47:22
こんにちは。
ここ2,3日店が閉まって入れなかったのですが、
クローズされたとniftyがいうので閉店されたのか?思っていました。
それとも、閉め出されたのかと思って、何か悪いことをしたのかなと
思いめぐらしていました。
まずは、おめでたいです。

そうそう用件を忘れるところでした。
標準で組み込まれているshelltreeviewのShellCtrls.pasのバグを修正して作成組み込む方法を
コンポーネントのインストールの先生に聞こうと思って来店するもクローズしているので
「Delphi Q & A 掲示板」で教えてもらったのですが今ひとつビンときません。
回答をまとめると
回答1--------------------------------------------------------------------------------
ソースのあるフォルダ\borland\delphi6\Demos\ShellControls\
を検索パスにいれるか、
修正後のShellCtrls.pasを検索パスのどこか(lib等)にコピーするか、
修正後、作成した .dcu を lib にコピーして下さい。
検索パスにソースをコピーしてしまうと再構築の際 ShellControls.pas を毎回再構築しますので、再構築に時間がかかってしまいます
回答2--------------------------------------------------------------------------------
試してみたら 2007/12/03(月) 16:35:30
自分のプロジェクトのフォルダにShellCtrls.pasをコピーして、それを書き換えてみたら
、確かに2個のメモリーリークが無くなったね。
出来たShellCtrls.dcuを Libフォルダに上書きコピーしておけばイイよ。
回答3--------------------------------------------------------------------------------
(1)ファイルをコピーする「他のフォルダ」は、自分のプロジェクトソースのフォルダ。
(2)検索バス(←バスを通してどうするの^^パス、とツッコミ)を通す必要なし。
(3)コンポーネントの再インストール必要なし。
--------------------------------------------------------------
検索パスを通せとか通すなとか、インストールも必要なしなどといわれるので
頭はこんがらかってしまいます。
要は、修正したpasのdcuを作成仕方が判らず
がちゃがちゃやっていたらdcuが出来たのですがDelphiをぶっ壊しました。
通常のインストールをするとvclshlctrlsにすでにある。とでるし
なかなかdcuだけ作成できません。
どなたか手順を教えてもらえないでしょうか。


[1463] Re:休業中?だったの?返信 削除
2007/12/4 (火) 23:37:10 Mr.XRAY
▼ 宮さん

> ここ2,3日店が閉まって入れなかったのですが、

ハイ,閉店準備中でした(ウソです) (^_^;)

なんか時々NiftyのサーバのCGI関係が開かなくなったりしますね.
元々NiftyはCGIに対しては厳しいのですが(セキュリティの関係で).

ここんとこQ and Aあまり見ていないのですが,Shellコントロールの件ですね.
見てみました.


まず,Delphiがソースコード(usesに書いてあるやつとします)を検索する
順序は,最初はそのプロジェクトが保存されているフォル・#95;です.
これはもちろん,検索パスを通す(パスの設定)必要はありません.

そんなことしたら,数百もあるプロジェクト全部にパスをとおしていたら,
コンパイルの時に検索だけでもエライ時間がかかってしまいます.
また,違うフォル・#95;に同じ名前(Unit1.pasなんていくらでもあります)が
あったら,最初に見つかったそのファイルを使用して,実際どのファイル
を使ったかわからなくなります.
(もちろん,該当プロジェクトのフォル・#95;が一番最初ですが)

ShellControls.pasを,今作成中のフォル・#95;にコピーして,
コンパイルしてみて下さい.多分
ShellControls.dcuというのができているハズです.

これを...にコピーするというのは,他のプロジェクトでの利用を考えてのこと
だと思います.
他のプロジェクトで使用しなければ,そのままでもOKです.

Delphiがどのフォル・#95;を検索するかは(パスの通ったフォル・#95;),
[ツール][環境オプション]の・#95;イアログで,
[ライブラリ]タブの[ライブラリパス]で右側の省略ボタン(...というやつ)
をクリックで確認できます.
Delphi7 Proの場合です.

http://homepage2.nifty.com/Mr_XRAY/Delphi/CompoInstall/CompPath.htm




[1464] コンポーネントの再登録が必要なのは返信 削除
2007/12/4 (火) 23:57:35 Mr.XRAY
▼ 宮さん

> 検索パスを通せとか通すなとか、インストールも必要なしなどといわれるので

コンポーネントのインストール(再登録)が必要なのは,

(1)コンポーネントの概観(Formに配置した時に表示が変更するもの)
   そのコンポーネントのCreate,SetParent等でコントロールの概観
   を変更しているコードの修正
(2)オブジェクト・インスペクタに表示されるものが変更された場合
   プロパティの名前,イベントの名前が変更または追加,削除された時

だけです.
それ以外の時は必要ありません.

[1465] Re:コンポーネントの再登録が必要なのは返信 削除
2007/12/5 (水) 15:59:19
▼ Mr.XRAYさん
>
> それ以外の時は必要ありません.

いま、ようやく理解できました。
やはり、先生の説明でないとよくわからないです。

Libやdclusr.dpkの中身および、\Projects\のBplの働きなど
さっぱり判らないのです。
ですから、エラーになる度にいじくり回し、あげくのはて、
Libやdclusr.dpkやBplを削除したり、以前バックアップしておいたものを
上書きコピーして、にっちもさっちもいかなくなり、
再インストールです。(とっ・ほっほっ・・泣きたくなりました)
おまけに、D6 Personalは使用許諾キーをネットでもらえなくなり
(もう使うなということでしょうか)ボーランドにメールして
キーをもらうやら、もうぐったりです。
肝心なとき店はクローズしていますと出るし、
泣きっ面に蜂でした。
最後のとどめは、このお礼のメールを出そうとすると、「サーバーエラー」
とでるし、は〜退屈しない一週間でした。

ほんとにありがとうございました。


INCM/CMT
Cyclamen v3.82