喫茶XRAYトップページ


[5059] TplExplorerFolderTreeにて返信 削除
2011/8/1 (月) 21:17:08 Sara
マスター いつもお世話になっております。 Saraです。

TplExplorerFolderTreeを1つだけフォームに置いて、

procedure TForm1.FormCreate(Sender: TObject);
begin
     with plExplorerFolderTree1 do begin
        Align := alClient;
        ShowItemStyle := SHCONTF_FOLDERS;
        RootFolder := '';
     end;
end;

とします。

そののち、F9(実行)をしてplExplorerFolderTree上で
なにかフォルダーを選択して右クリックすると・・・
異常終了します・・・

ちなみに、デバッグなしで実行だと異常終了しません・・・

ゆえに、この機能の先にある不具合のデバッグができません
(まぁできないこともないんだけど、無駄に時間が・・・)

回避策とかあったりしませんかね・・・(^^;

ちなみに環境は、Delphi2010+Windows7 Ultimate 64Bitです。
(まぁ、家の環境の問題という可能性もあるんですが・・・)

[5060] Re:TplExplorerFolderTreeにて返信 削除
2011/8/1 (月) 22:10:40 Mr.XRAY
▼ Saraさん.こんちには.

ヘヘヘッ.このTplExplorerFolderTreeなんですけどね,
勢いでサンプル作成したんですけど,私嫌いなんです(笑).

> なにかフォルダーを選択して右クリックすると・・・
> 異常終了します・・・


完璧な,どうしようもない動作ですね.

> ちなみに環境は、Delphi2010+Windows7 Ultimate 64Bitです。
> (まぁ、家の環境の問題という可能性もあるんですが・・・)


そんなことはないと思いますです.
あっ,この環境,私と同じですね.Ultimate 64Bit.


[5065] Re2:TplExplorerFolderTreeにて返信 削除
2011/8/2 (火) 16:47:28 Sara
▼ Mr.XRAYさん

> 勢いでサンプル作成したんですけど,私嫌いなんです(笑).
またまた(^^; そんなこと言わずに(^^;
何となく分かる気もしますが・・・
私個人的には、NASドライブへアクセスした際の動作が非常に
軽いので、気に入っています。(^^)V
(まぁ、他のコンポーネントに比べると制御しづらいですが)

 
> > なにかフォルダーを選択して右クリックすると・・・
> > 異常終了します・・・
>
> 完璧な,どうしようもない動作ですね.


そうなんですよね・・・(^^;


> あっ,この環境,私と同じですね.Ultimate 64Bit.
Delphi Xeの環境でためしてみたら、問題なく動きますね・・・
やっぱりプロジェクトをDelphi Xeに移行しないとだめかな・・・

以前単純移行を行ったとき、作成されたプログラムを実行した瞬間に
なにも起きずに異常終了したので、それ以来封印していましたが・・・(--;

その前に、私がいじり倒したソースでなくて、Web上の素のサンプルで
試してみるかな・・・(今出先なので、数時間後ですが・・・)

[5068] Re3:TplExplorerFolderTreeにて返信 削除
2011/8/2 (火) 20:31:43 Sara
▼ Mr.XRAYさん

> その前に、私がいじり倒したソースでなくて、Web上の素のサンプルで
> 試してみるかな・・・(今出先なので、数時間後ですが・・・)


試してみました・・・結果・・・ 無問題・・・

どうやら、私の追加した部分が悪さをしているらしい・・・
お騒がせしました。忘れてください・・・(^^;

なにが悪いんだろ・・・ちょっとずつソースを増やして実験するか・・・

[5069] Re4:TplExplorerFolderTreeにて返信 削除
2011/8/2 (火) 20:50:09 Sara
▼ Mr.XRAYさん

> 試してみました・・・結果・・・ 無問題・・・

またまた、ごめんなさい・・・問題ありでした・・・

やはり、Delphi Xeに移行したほうがよいかな・・・(^^;

[5070] Re5:TplExplorerFolderTreeにて返信 削除
2011/8/2 (火) 20:55:11 Mr.XRAY
▼ Saraさん

> やはり、Delphi Xeに移行したほうがよいかな・・・(^^;

Delphi XEだとエラーや例外が発生しない場合がありまよね.
Delphi 2010のバグ修正版のような感じです.
でも,開発環境をXEに移動するとなると,コンポ類の作業もありますから.
難しいところです.

サンプルを提供している立場としては,Delphi 2010のテストも必要なので,
原則的に2010でテストして,という手順にしています.

SyakeさんのTplPrevの問題を片付けたら,チェックしたいと思っています.
あしからず.


[5074] Re6:TplExplorerFolderTreeにて返信 削除
2011/8/3 (水) 00:40:20 Sara
▼ Mr.XRAYさん

> でも,開発環境をXEに移動するとなると,コンポ類の作業もありますから.
> 難しいところです.

さっそく、嵌っています・・・
'jpeg.pas'ユニットはコンパイルできませんでした とか言ってコンパイルできない。
もちろん、新規プロジェクトでJpegユニットを指定した場合は、正常にコンパイルできます。

が、私の必要なコンポーネントを配置していくと、いつの間にか上記メッセージが・・・
なんだろこれ・・・ で無理やりJpeg.pasのあるフォルダを検索に含めると
コンパイルは通るけど、Jpegファイルをロードするとエラーになる・・・

なんか、根本的にどれかのコンポーネントとDelphi Xeの相性がわるいな・・・
コンポーネント自体は正常にコンパイルできて、登録もできているのに、
「動作しない」ではなくて、「コンパイルできない」とは・・・


> サンプルを提供している立場としては,Delphi 2010のテストも必要なので,
> 原則的に2010でテストして,という手順にしています.

おまちしておりまする〜m(_ _)m

あぁ しかし、Delphi Xeはどうしよう・・・
1から作り直すしかないかな・・・(いやすぎる・・・)
そういえば、Delphi7からDelphi2005にしたときに一度作り直した気がする・・・
Delphi2007からDelphi2010にしたときは、なんとか移行できたのに・・・(愚痴)

[5083] Re7:TplExplorerFolderTreeにて返信 削除
2011/8/3 (水) 22:13:59 Sara
▼ Mr.XRAYさん
 
> あぁ しかし、Delphi Xeはどうしよう・・・

動きました!! Delphi Xeで!

原因は・・・(言いたくない・・・(^^;)

プロジェクトの保存フォルダ内にJPEG.DCUがなぜか存在していた・・・
それをそのままDelphi Xeのプロジェクトフォルダーに全体コピーして
使っていたので、エラーになっていただけらしい・・・お恥ずかしい・・・

しかし、これで何とかDelphi Xeとも仲良くできそうだ(^^)

Xe2もでることだし、64Bit化とMac OSX対応もうまくいくといいなぁ(*^o^*)
(一部、敷居が高いところもあるが・・・32Bit DLLの読み込みとか)
(そもそも、Mac OSXでSQLiteとかどうやって呼ぶんだ? OSXに最初から入っているらしいが)

みなさん、また一緒に悩みましょう(^^;;;


[5084] Re8:TplExplorerFolderTreeにて返信 削除
2011/8/3 (水) 23:07:52 Mr.XRAY
▼ Saraさん

>原因は・・・(言いたくない・・・(^^;)

よくあることです.ハイ!

> プロジェクトの保存フォルダ内にJPEG.DCUがなぜか存在していた・・・

そういうことも,よくあることです.ハイ.

> みなさん、また一緒に悩みましょう(^^;;;

あっ,他の人を仲間に引きずり込もうとしていますね (^^;
できれば仲間になりたくない... はかない願望ですが.


[5117] Re:TplExplorerFolderTreeにて返信 削除
2011/8/11 (木) 00:09:55 Mr.XRAY
▼ Saraさん,お待たせしています.

> 回避策とかあったりしませんかね・・・(^^;

これはですね.実はよく分からないのですよ(汗).
実際には,参照カウンタがおかしいのでしょうけど,オブジェクト
(インターフェイス)の生成時に,自動でインクリメント,デクリメント
してくれるハズなんですが,う〜ん.(AddRefとかいう関数です)
じっくり調べるしかないですね.
自動でやってくれないなら,処理コード追加ですね.

いけない,思い出しました.参照カウンタがおかしいサンプルが
いくつかあるのですが,まだ修正していないのがあります.
もし正常動作していても,たまたま動作しているだけですね.
近いうちに,このTplExplorerFolderTreeも含めて修正します.
(例によって,いつになることやら)

このあたりは,実際に作成した本人(つまり,この私)じゃないと追跡
が難しいこともありますので,何とも... ハハハッ
えっ,笑ってごまかすな!?


[5119] Re2:TplExplorerFolderTreeにて返信 削除
2011/8/11 (木) 09:26:45 Sara
▼ Mr.XRAYさん

> 近いうちに,このTplExplorerFolderTreeも含めて修正します.
> (例によって,いつになることやら)

了解しました。よろしくお願いします。m(_ _)m
と いいつつ、Delphi Xeに移行したので、実害がありませんが・・・(^^;
おかげで、いくつかの不具合を見つけるきっかけになりました。(^^;

今は、WindowsXP or Windows2000で動かす場合にShellTreeViewで
マイネットワークの+をクリックした時の動作をどうにかしたいです・・・
(全然ネットワーク一覧が表示されないというか、遅すぎるというか)

直接NAS等のフォルダを参照するようにフォルダ名を指定しても反応が
返ってくるのが非常におそくて・・・使い物になっていない・・

いくつか他の方がつくられているコンポーネントも試してみたのですが、
同じような感じなんですよね・・・

そこへいくと、TplExplorerFolderTreeは、ネットワークの部分も含めて
快適に動作します。(^^)V
(+で一覧表示されないこともありますが、フォルダ名を直接入力すると
 該当ホストのフォルダ構造を極めて高速にTreeを生成して表示してくれる)

WindowsXPとWindows2000で動作不能なのが惜しまれる・・・


[5121] Re3:TplExplorerFolderTreeにて返信 削除
2011/8/11 (木) 09:49:59 Mr.XRAY
▼ Saraさん

> WindowsXPとWindows2000で動作不能なのが惜しまれる・・・

そうなんですよね.Windows 2000で動作するシェルのインターフェイス
では期待する動作してくれないんです.

> おかげで、いくつかの不具合を見つけるきっかけになりました。(^^;

当方もです.その意味ではサンクスなんですが...

> 今は、WindowsXP or Windows2000で動かす場合にShellTreeViewで
> マイネットワークの+をクリックした時の動作をどうにかしたいです・・・
> (全然ネットワーク一覧が表示されないというか、遅すぎるというか)


> 直接NAS等のフォルダを参照するようにフォルダ名を指定しても反応が
> 返ってくるのが非常におそくて・・・使い物になっていない・・


何か方法がないのかと思うのですが,なんとも.
そこで,試しに,サンプルのTplExplorerFolderTree等を試しに作ってみたんです.
シェルインターフェイスを使うと速いのですが,これはマイクロソフトが
提供している機能ですから,当たり前と言えば当たり前なんでしょうね.

ファイルのリストや,フォルダツリー表示の機能は,アプリでの実装という
は結構需要があると思うのです.マイクロソフトさんは,何故このあたりの
インターフェイスをしっかりやってくれなかったのでしょう.
もしかして,わざと?


[5122] Re4:TplExplorerFolderTreeにて返信 削除
2011/8/11 (木) 10:24:13 Sara
▼ Mr.XRAYさん

> ファイルのリストや,フォルダツリー表示の機能は,アプリでの実装という
> は結構需要があると思うのです.マイクロソフトさんは,何故このあたりの
> インターフェイスをしっかりやってくれなかったのでしょう.
> もしかして,わざと?


ありえる・・・(^^;


それはさておき、SHBrowseForFolderをフォーム上に表示させることって
できませんかね・・・(^^;(無茶振り?)

あれなら、我慢できる程度の時間で反応があるのですが・・・
ダイアログぢゃぁなぁ・・・

[5123] Re5:TplExplorerFolderTreeにて返信 削除
2011/8/11 (木) 23:40:16 Mr.XRAY
▼ Saraさん,どうも.出かけていたもので.

> それはさておき、SHBrowseForFolderをフォーム上に表示させることって
> できませんかね・・・(^^;(無茶振り?)


いえ,これできなくはないのですが,えーと,ちょっと待ってください.
何か不具合があったような記憶があります.
あるいは,Windows 2000以前でないと正常に表示できなかったかです.
OSによって,このSHBrowseForFolderは,表示コントロール等に微妙に
違いがあります.
また,選択したフォルダを,コールバック関数から取得するのですが,
結構面倒です.
いずれにしても,おそらくかなり無理があると思います.

ファイル関連ダイアログコンポーネント
http://mrxray.on.coocan.jp/Delphi/plFileDialog/plFileDialog.htm

これを作る時に,テストしました.

> あれなら、我慢できる程度の時間で反応があるのですが・・・
> ダイアログぢゃぁなぁ・・・


なるほど.う〜む.
テスト的な作成中のシェルフォルダツリーはあるのですが,もう何年も
放置したままです.これを改良して... うまくいくわけないか...


[5124] Re6:TplExplorerFolderTreeにて返信 削除
2011/8/11 (木) 23:52:39 Mr.XRAY
> テスト的な作成中のシェルフォルダツリーはあるのですが,もう何年も
> 放置したままです.これを改良して... うまくいくわけないか...


あっ,ダメです.Windows 2000以前は対象外のコードです.(^^;


[5125] フォルダツリーの機能返信 削除
2011/8/12 (金) 00:18:27 Mr.XRAY
▼ Saraさん,ちょっとお付き合い頂いてよろしいでしょうか.

こんな動作のフォルダツリーが欲しい

(1) できれば,Windows 2000以降で使用可能
    開発時は,Windows XP以降で構わない
    TplExplorerFolderTreeはWindow 2000上ではEXEの実行が不可
(2) ツリーの展開(+マーククリック時の)が速いのがいい
    TplExplorerFolderTreeはIDE上でコンパイル実行すると,異常終了.
    Delphi XEなら,現在のところ大丈夫なようだ
    ShellTreeViewコンポでは,ネットワーク等の展開が遅い

なとこですか.
サードパーティ製で何かないのかなぁ.

結論
我慢しましょう.じゃなくて... う〜ん,何か方法はないのかしらん.

それでです,お付き合い頂きたいのは,以下のテストプログラムのこと
なんです.これは,数年前から放置しているものなんですが,もし,
これで我慢できる展開ができれば,このコードを,フォルダツリーに導入
することも考えてみたいと思います.
ただし,このテストEXEは,いろいろコードを変更していますので,
ボタンに表示している機能が,そのまま動作するわけではありません.
展開の速度を確認するためのものですので,ご了承ください.

http://mrxray.on.coocan.jp/Delphi/zipothers/plShellFileListTest.zip


[5126] Re:フォルダツリーの機能返信 削除
2011/8/12 (金) 00:57:55 Sara
▼ Mr.XRAYさん
> ▼ Saraさん,ちょっとお付き合い頂いてよろしいでしょうか.
はいはい、ちょっとどころか、ながーくでも大丈夫です。(^^)


> こんな動作のフォルダツリーが欲しい
>
> (1) できれば,Windows 2000以降で使用可能
>     開発時は,Windows XP以降で構わない
>     TplExplorerFolderTreeはWindow 2000上ではEXEの実行が不可
> (2) ツリーの展開(+マーククリック時の)が速いのがいい
>     TplExplorerFolderTreeはIDE上でコンパイル実行すると,異常終了.
>     Delphi XEなら,現在のところ大丈夫なようだ
>     ShellTreeViewコンポでは,ネットワーク等の展開が遅い
> なとこですか.

まったくそのとおりであります。軍曹・・ぢゃなくてマスター。

> サードパーティ製で何かないのかなぁ.
できれば、お金かけたくなかったり・・・(^^;
(なんせ、作っているのはフリーソフトだしね・・・)

> それでです,お付き合い頂きたいのは,以下のテストプログラムのこと
> なんです.これは,数年前から放置しているものなんですが,もし,
> これで我慢できる展開ができれば,このコードを,フォルダツリーに導入
> することも考えてみたいと思います.
> ただし,このテストEXEは,いろいろコードを変更していますので,
> ボタンに表示している機能が,そのまま動作するわけではありません.
> 展開の速度を確認するためのものですので,ご了承ください.

ちょっと、試してみましたが・・・
家の環境おかしい・・・SHBrowseForFolderでもネットワークツリーが正常展開されない・・・
(会社ではうまくいっていたのに・・・(^^;
 TplExplorerFolderTreeでも、+ボタンでの展開ができない
 でもTplExplorerFolderTreeはパス指定すると、ちゃんと表示される)

明日、会社で再度試してみます。っていうか 今日か・・・(^^;
おやすみなさい・・・

[5127] Re2:フォルダツリーの機能返信 削除
2011/8/12 (金) 11:54:32 Sara
▼ Mr.XRAYさん

> ちょっと、試してみましたが・・・
> 家の環境おかしい・・・SHBrowseForFolderでもネットワークツリーが正常展開されない・・・
> (会社ではうまくいっていたのに・・・(^^;
>  TplExplorerFolderTreeでも、+ボタンでの展開ができない
>  でもTplExplorerFolderTreeはパス指定すると、ちゃんと表示される)


と、言うわけで、会社の環境で試してみました。

中々です。10秒〜15秒程度でネットワーク一覧が表示されます。

TplExplorerFolderTreeでは、6秒〜14秒程度です。
(6秒で表示されるのは希ですが)

よろしくお願いいたします。

[5128] Re3:フォルダツリーの機能返信 削除
2011/8/12 (金) 12:06:08 Mr.XRAY
▼ Saraさん

動作確認ありがとうございます.

> 中々です。10秒〜15秒程度でネットワーク一覧が表示されます。

なんかまだ長いような気もしないでもないですが.
エクスプローラなんかでもこんなもんかも知れません.

> よろしくお願いいたします。

う〜む.困りました.先ほどソースコードを見てみたのですが,
自分が数年前に書いたコメントの意味も理解できない状態です.
やってみますか?
ただ,コンポーネントの開発なので,多くのサンプルプログラム集のように,
チョチョィというわけにはいきません.
しばらくは現状で我慢していただくことになりますが...
もっとも,小生のばやい,慎重にやっても,素晴らしいバグと,誤字脱字
のオンパレードですけどね(笑)
(そういうのは,「慎重」とは言わない?)

もしかしたら,途中でテストをお願いするかも知れませんが,
無理してこの喫茶XRAYに来ることはありません.
適当な時に覗いていただければと思います.開発はそのまま続けますので.
もちろん,他の方がテストに参加していただいても構いません.
むしろ,お願いしたいです.

備考: 昨日UPのEXEは,Windows 2000では動作しないかも知れません.


[5130] Re4:フォルダツリーの機能返信 削除
2011/8/12 (金) 14:52:38 Sara
▼ Mr.XRAYさん

> なんかまだ長いような気もしないでもないですが.
> エクスプローラなんかでもこんなもんかも知れません.

そうですね、エクスプローラーもそんなもんです。

> う〜む.困りました.先ほどソースコードを見てみたのですが,
> 自分が数年前に書いたコメントの意味も理解できない状態です.

よくあります・・・(^^;

> しばらくは現状で我慢していただくことになりますが...
了解です。(^^)V


> もしかしたら,途中でテストをお願いするかも知れませんが,
いえいえ、こちらがお願いしている立場ですし(^^)
最終的に「だめでした」もありです。(でも 悔しいでしょ?(^^; )


> 無理してこの喫茶XRAYに来ることはありません.
ほぼ、毎日覗いています(^^; ROMが多いですが(^^;

> 備考: 昨日UPのEXEは,Windows 2000では動作しないかも知れません.
Windows2000ではテストしてないですね・・・帰ったらやってみます。

では、よろしくお願いいたします。

[5131] Re5:フォルダツリーの機能返信 削除
2011/8/12 (金) 23:52:29 Mr.XRAY
▼ Saraさん

> 最終的に「だめでした」もありです。(でも 悔しいでしょ?(^^; )

ムムムッ.痛いところを,人の弱点を...
こう言われるだけでも悔しい!! (^^;

自分の環境だけだと,どうしても確認できなかったり,気付かないことがあるので,
他の環境でEXEをテストしていただけると助かります.


[5133] Re6:フォルダツリーの機能返信 削除
2011/8/14 (日) 20:50:15 Sara
▼ Mr.XRAYさん

> ムムムッ.痛いところを,人の弱点を...
> こう言われるだけでも悔しい!! (^^;

ふっふっふ(~~)

> 自分の環境だけだと,どうしても確認できなかったり,気付かないことがあるので,
> 他の環境でEXEをテストしていただけると助かります.

それくらいならいつでもおまかせあれ(^^)V すっかり他力本願ですが(^^;

[5134] 途中経過報告返信 削除
2011/8/17 (水) 21:48:07 Mr.XRAY
▼ Saraさん

> ふっふっふ(~~)

ムッ!? 何か嫌な笑いなような... (^^;

現在Delphi 2007でもコンパイルできるように修正中です.
これは,Windows 2000でも動作可能なようにするためですが,
前に挫折した記憶があるので,うまくいくかは,未知数です.

Windows 2000以前,Delphi 2010よりも前のバージョンで動作する
プログラムは,これが,永久に最後になるかも知れません.
テストをお願いするのは,まだ少し先になりそうです.

# 明日は割と時間が取れそうなので,少しは進みそうです


[5135] Re:途中経過報告-方針変更返信 削除
2011/8/18 (木) 08:55:10 Mr.XRAY
> 現在Delphi 2007でもコンパイルできるように修正中です.
> これは,Windows 2000でも動作可能なようにするためですが,


やめます.
Delphi 2010以降専用で,Windows 2000で動作可能にしたいと思います.
基本的にSaraさんからのリクエストなので.
前にSaraさんが書いたコードを利用する予定です.
これは,[731_UNHLA32.DLLを使用したファイルの圧縮・解凍]等で使って
いる方法と同じです.


[5136] Re2:途中経過報告-方針変更返信 削除
2011/8/18 (木) 21:41:05 Sara
▼ Mr.XRAYさん

> やめます.
> Delphi 2010以降専用で,Windows 2000で動作可能にしたいと思います.
> 基本的にSaraさんからのリクエストなので.
> 前にSaraさんが書いたコードを利用する予定です.
> これは,[731_UNHLA32.DLLを使用したファイルの圧縮・解凍]等で使って
> いる方法と同じです.


了解です。(^^) Delphi2010以降専用で問題ないです。
(Delphi2007は自社用のPG修正以外では使っていないし)
(そろそろ、2010以降のDelphiに移行しなければと思いつつ、面倒で・・・)

よろしくお願いします。

[5129] Re3:フォルダツリーの機能返信 削除
2011/8/12 (金) 12:32:29 Mr.XRAY
▼ Saraさん

> 中々です。10秒〜15秒程度でネットワーク一覧が表示されます。

技術的なことなんですが,ネットワークのリストに限らず,
リンク切れのファイル等も,ファイルリスト(ツリー展開も)は,サンプル
プログラム集にあるコードだと,検出にかなり時間がかかります.
ところが,一度,検出不可の結果が取得できるタイミングがあります.
ここで検出を中止して,アイコンだけを取得するという方法を使っています.

つまり,既に存在しないフォルダやファイルもリストしてしまうことが
あります.これをクリックすると,今度は実際に時間がかかってしまいます.
この回避方法は,今のところ分かりません.


INCM/CMT
Cyclamen v3.82