喫茶XRAYトップページ


[5280] [947_エクスプローラをフォームに表示]を更新返信 削除
2011/9/20 (火) 21:03:25 Mr.XRAY
TplExplorerFolderViewとTplExplorerFolderTreeだけ更新しました.
前に問題となっていた,Delphi 2010のデバッグ時の例外発生,つまり
参照カウンタの問題の修正です.

Delphi XE, XE2では発生しないので,Delphi 2010のバグでしょう.多分...
QCにUPするには整理しないと(回避方法がわかるので必要ないかも).
今回,Delphi XE2で,32bitと64bitでも動作確認しました.
(もちろんVCLですよ!)
64bitでのテスト方法は,Delphi XE2のコンポーネントのインストール方法
と一緒に記事にする予定ですので,しばらくお待ちください.

64bitでのコンポーネントの利用方法をご存知の方はこの限りではありません.
勝手にやってくださいませ.

なお,参照カウンタについては,オンラインヘルプを「参照カウンタ」で
検索してみてください.
確か,以前DEKOさんがどこかで説明していたような気がします.


[5281] Re:[947_エクスプローラをフォームに表示]を更新返信 削除
2011/9/20 (火) 21:19:16 Mr.XRAY
> TplExplorerFolderViewとTplExplorerFolderTreeだけ更新しました.
> 前に問題となっていた,Delphi 2010のデバッグ時の例外発生,つまり
> 参照カウンタの問題の修正です.


[01_エクスプローラをフォーム上に表示]の同様の問題がありますが,
どうせ使い物にならないサンプルですので,
必要であれば自力で修正してください m(_ _)m

[5282] Re2:[947_エクスプローラをフォームに表示]を更新返信 削除
2011/9/21 (水) 09:58:20 Sara
▼ Mr.XRAYさん

> > TplExplorerFolderViewとTplExplorerFolderTreeだけ更新しました.
> > 前に問題となっていた,Delphi 2010のデバッグ時の例外発生,つまり
> > 参照カウンタの問題の修正です.
>
> [01_エクスプローラをフォーム上に表示]の同様の問題がありますが,
> どうせ使い物にならないサンプルですので,
> 必要であれば自力で修正してください m(_ _)m


マスター、お疲れ様でしたm(_ _)m

参照カウンタ修正だけではなく、スレッドを使わないようになったようですね。(^^)
まだ、ざっとHP上のソースを眺めただけなので、詳しくは分かりませんが、
OnEnterやOnExitもスマートに実現できそうです。(^^)V
(今現在、私のところでは、マウス位置によって、強引にスレッドの開始と終了を
 行っているので・・・(^^; )

今日の夜に試してみます。(^^)



[5283] Re3:[947_エクスプローラをフォームに表示]を更新返信 削除
2011/9/21 (水) 11:40:05 Mr.XRAY
▼ Saraさん

> スレッドを使わないようになったようですね。(^^)

そうなんですよ.
最初は,参考にしたサイトのコード,C++のコードをなるべく変更しないで,
と思ったのですが,だんだんDelphi向きのコード(私好みの?)になってきて
しまいました.
当初は,C++のコードをDelphiに移植する参考用にと思ったんですが...(^^;

[5286] Re4:[947_エクスプローラをフォームに表示]を更新返信 削除
2011/9/22 (木) 00:13:19 Sara
▼ Mr.XRAYさん

> > スレッドを使わないようになったようですね。(^^)
>
> そうなんですよ.
> 最初は,参考にしたサイトのコード,C++のコードをなるべく変更しないで,
> と思ったのですが,だんだんDelphi向きのコード(私好みの?)になってきて
> しまいました.
> 当初は,C++のコードをDelphiに移植する参考用にと思ったんですが...(^^;


マスター、バッチリ動作しています。(^^)V

以前のものだと、こちらで強制的にスレッドの開始と終了を繰り返しているうちに
ごくたまに、スレッドでメモリーリークする不具合があったのですが、
スレッド自体がなくなっていますので、そこもクリアです(^^;

惜しむらくは、スクロールバーがスタイルに追従しないこと・・・(^^;
スクロールバーをスクロールボックスで代用できないですかね・・・

あと、やはりページコントロールの表示がおかしい・・・(結構多用しているので・・)
(plExplorerFolderTreeとは無関係です)
やはり、プロジェクトを作り直してみるか・・・orz

[5287] Re5:[947_エクスプローラをフォームに表示]を更新返信 削除
2011/9/22 (木) 01:26:11 Mr.XRAY
▼ Saraさん、

明日は仕事休みで、昼近くから出かけますので、夜なべ。で、
でもなんか眠い (^^)

> 以前のものだと、こちらで強制的にスレッドの開始と終了を繰り返しているうちに
> ごくたまに、スレッドでメモリーリークする不具合があったのですが、
> スレッド自体がなくなっていますので、そこもクリアです(^^;


動作確認サンクスです。
これはこれでいいのですが、例の前に話題になったEnterとかExitとか
マウスメッセージは自前になりますのでよろしく。
使用しているインターフェイスには、そのような機能はないので。
他のインターフェイスにも、それらしきものがありません。
マイクロソフトは、素直にそのまま使え、ということだと思います。

ページコントロールの方は、時間があれば試してみますね。

>スクロールバーをスクロールボックスで代用できないですかね・・・

http://msdn.microsoft.com/en-us/library/bb774328%28VS.85%29.aspx
ここのインターフェイスを順番に調べてみると分かりますが、
原理的に無理でしょう。
スクロール分を検出する手立てもスクロール手段も全くありません。
Delphiのコントロールであれば可能でしょうけど。
つまり、マイクロソフトは、素直にそのまま使え、ということだと思います。


[5288] Re6:[947_エクスプローラをフォームに表示]を更新返信 削除
2011/9/22 (木) 07:24:32 Sara
▼ Mr.XRAYさん

> これはこれでいいのですが、例の前に話題になったEnterとかExitとか
> マウスメッセージは自前になりますのでよろしく。
> 使用しているインターフェイスには、そのような機能はないので。
> 他のインターフェイスにも、それらしきものがありません。
> マイクロソフトは、素直にそのまま使え、ということだと思います。


OnIdleEventでマウス下のコンポーネントが普通に取得できますので、
そこで、OnEnterとOnLeaveを発動させています。今のところ大丈夫そうです。


> ページコントロールの方は、時間があれば試してみますね。
おぉ、恐縮ですm(_ _)m


> >スクロールバーをスクロールボックスで代用できないですかね・・・
>
> http://msdn.microsoft.com/en-us/library/bb774328%28VS.85%29.aspx
> ここのインターフェイスを順番に調べてみると分かりますが、
> 原理的に無理でしょう。
> スクロール分を検出する手立てもスクロール手段も全くありません。
> Delphiのコントロールであれば可能でしょうけど。
> つまり、マイクロソフトは、素直にそのまま使え、ということだと思います。

そうですか・・・スクロールボックスに乗せて、plExplorerFolderTreeのサイズを
スクロールバーが出ないようにサイズ調整しておけば大丈夫かと思うのは浅はかでしたか・・・(^^;

残念です(^^;

[5290] Re7:[947_エクスプローラをフォームに表示]を更新返信 削除
2011/9/22 (木) 10:05:58 Mr.XRAY
▼ Saraさん

> OnIdleEventでマウス下のコンポーネントが普通に取得できますので、
> そこで、OnEnterとOnLeaveを発動させています。今のところ大丈夫そうです。


よかったです。
TWebBrowserもインターフェイスの実装で実現していますが、やはり、ネット
上の掲示板でよく、マウスやキーイベントの取得の質問があるようです。
結局はメッセージ処理しかないようです。
ただ、TWebBrowserにはIHTMLDocument(MSHTML)などが使えて、これがいろいろ
な機能を提供しているようです。


[5298] Re8:[947_エクスプローラをフォームに表示]を更新返信 削除
2011/9/24 (土) 02:01:32 Sara
▼ Mr.XRAYさん

> ページコントロールの方は、時間があれば試してみますね。
待ちきれなくて(笑)、プロジェクトを作り直してみました。
(ソースはそのままで、全フォームを作り直しただけですが・・・)

で、結果として、まったく不具合がおきません!! (^^)V

と、いうわけで、どうもXE2で古いプロジェクトを変換する際に、
なにか悪さをしているということなんでしょう・・・多分・・・




[5299] Re9:[947_エクスプローラをフォームに表示]を更新返信 削除
2011/9/24 (土) 08:18:42 Mr.XRAY
▼ Saraさん

> で、結果として、まったく不具合がおきません!! (^^)V

了解しました.
「勝てば官軍,動けば正義」です.何かプロパティの違いかなんかかも
知れませんね.

INCM/CMT
Cyclamen v3.82