喫茶XRAYトップページ

[スレッド全体
]

[3875] エクスプローラのようなアプリ返信 削除
2010/10/31 (日) 20:42:21 Mr.XRAY
を作成するためのコンポーネントですが,更新しました.
Delphi 2010でコンパイルしたら修正が必要で,アイコンも表示されない
という状態でした.
実は,ちょっと前にQ and Aでシェルコンポーネントでアイコンが表示
それない,というのがあったので,確認したら.あらっ? だったので.
(シェルを使用したものではありません.念のため)

http://mrxray.on.coocan.jp/Delphi/plSamples/812_ExplorerTest.htm

また,このページのサンプルで使用していた,ヒシアマゾンさん作の
コンテキストメニュー表示のコンポーネントもインストールできません
でした.

コードを修正するよりも,最初から作成した方がいいんじゃないかと思い,
作成しました.これは,他の方が単独で使用することも考えて別のページ
を設けました.
私自身は自アプリで使おうとは思わないのですが (^^;)
「売り」は[新規作成]のサブメニューも表示することです.
これはおそらくレアものです.ハイ.

http://mrxray.on.coocan.jp/Delphi/plSamples/814_ContextMenu_DropSource.htm

[3889] Delphi6による動作検証返信 削除
2010/11/2 (火) 22:46:12 たてぐや
▼ Mr.XRAYさん

 いまさら6? と言われそうですが、バージョンアップする予定はないので
動作検証してみました。こういうの、前から欲しかったのです。以下、DPRファ
イルから起動しての結果です。

01_Explorer_test
フォーム作成時に「Splitter.ExplieHightのプロパティが存在しない」と言わ
れてフォームが表示できませんでした。

02_plContextMenu_01_Test01
正常にコンパイルでき、動作しました。

03plContextMenu_01_test01
kコンパイルできて表示されましたが、右ペインのファイル名を右クリックす
ると「外部例外」が発生します。

04_OpenDlg_Application
実行しようとするとCPUウィンドルが出てしまい、継続できませんでした。

 以上、参考までに。
 さっさと新しいDelphi買え!と言われそうですが…

[3890] Re:Delphi6による動作検証返信 削除
2010/11/3 (水) 08:54:37 Mr.XRAY
>  以上、参考までに。
>  さっさと新しいDelphi買え!と言われそうですが…


御意!! ウソ,ウソです.

> 動作検証してみました。

たてぐさーん.こういうの嬉しいです.
得意になって答えちゃいます.

> 01_Explorer_test
> フォーム作成時に「Splitter.ExplieHightのプロパティが存在しない」と言わ
> れてフォームが表示できませんでした。


スミマセンね.これ,Delphi 2010のプロジェクトなんです.
いくつか方法が考えられるのですが,一つは添付の図のように,[全て無視]で
やる方法です,

これで多分,他のサンプルも動作すると思います.
もう1つの方法は,以下の説明の方法です.

http://mrxray.on.coocan.jp/Delphi/Info/OtherInfo_General.htm#02


[3891] Re2:Delphi6による動作検証返信 削除
2010/11/3 (水) 09:03:31 Mr.XRAY
後,このコンポは,いわゆるシェルコンポーネントではないので,
特殊フォルダがフルパスの名前部分になったり,うまく表示できない
ことがあります.

例: マイドキュメント ---> MyDocument

Delphi 6Pro以上でしたら.Demoフォルダにシェルコンポーネントが
あります.これを使うのも手だと思います.
わざわざ,サンプル[812]のコンポを作成したのは,業務では,特殊
フォルダを使わないこと(ほとんど共有フォルダ)と,Delphi添付の
シェルコンポの使い勝手がいまいちだったからです.
ん? コンパイルじゃなくてインストールだったかな?


[3892] Re3:Delphi6による動作検証返信 削除
2010/11/4 (木) 22:38:48 たてぐや
▼ Mr.XRAYさん

 多々解説ありがとうございます。シェルコンポーネントはすでにインストー
ルしてありまます。あまりいじったことはないのですが、試しにサンプルと
同じようなものを作ってみました。右ペインでファイル名を右クリックして
コンテキストメニューを表示するところで、フォルダなら表示されますが、
単体ファイルだとやはり外部例外が発生してしまいました。オープンダイア
ログでの表示でファイルを右クリックしても発生しますから、これはこうい
うものなのかもしれません。

[3894] Re4:Delphi6による動作検証返信 削除
2010/11/5 (金) 17:40:45 Mr.XRAY
> 単体ファイルだとやはり外部例外が発生してしまいました。オープンダイア
> ログでの表示でファイルを右クリックしても発生しますから、これはこうい
> うものなのかもしれません。


う〜む.何なんでしょう.気になります(笑)
少し気持ちを落ち着かせてから調査してみます.


[3896] Re5:Delphi6による動作検証返信 削除
2010/11/5 (金) 19:50:06 宮 〔HomePage
▼ Mr.XRAYさん
> 少し気持ちを落ち着かせてから調査してみます.
ご無沙汰してます。

なが〜いイントロ。(グチ)
Windows7では、特殊フォルダの間では従来の上の階層という概念が無くなった?。
クスプローラーにそのボタンがない。
デスクトップでさえ、他のドライブへ移動できる。
ドキュメントも当然移動できる。
この上で、ライブラリの下のドキュメントは仮想のフォルダである。
(実態がない)
そのくせ、その下のフォルダやファイルは実体のあるファイルなので
仮想のつもりで削除したら偉い事になった。
まえは、実体上と違うがデスクトップが一番上だった。
ドキュメントから上の階層へいくとデスクトップになった。
しかし、7のエクスプローラーは上の階層へいく事はできない。
前に戻る事になる。
だから、がんばっても最初開いフォルダ以上の階層へは行けない。
まえは、ちょっと目に触れないようにフォルダに隠していた写真を、
7に移行したら、根こそぎ、ピクチャーへ引きずり出されて、泡を食った。
今までもネットワークはわかりにくかったけど、
ワークグループの他にホームグループってできてますます解らなくなった。
イージー設定で設定自体は簡単にできるかもしれないけど
何がどうなっちゃっているのと考え出したら神経衰弱になりそう。
だって、ライブラリに引きずり出された上に、
ライブラリごとデフォルトで共有モードになっているなんて知ったときは、
腰を抜かした。
何考えてるのかねえ〜msは。7のエクスプローラーのツリービューは
もう、めちゃくちゃになった。

そういうわけで、従来のエクスプローラのような自作ソフトの
フォルダツリーでは7に対応できなくなったので、
何とかしなければと考えているとき、
タイムリーにマスターがエクスプローラー関係を更新したというので
期待して取り組んだのですが・・・・・

マスターもおっしゃられているように、
これは、職場で他の変なフォルダに書き込んだり
読み込んだりしないようにルートフォルダを決めておく前提ですね。
これはこれでいいのですが、

私は希望を言えば、てっぺんからの
(7は何がてっぺんか解らなくなりましたけど。)
全ドライブ、から欲しいです。
それと、マスターのは右画面のファイルの表示がとても早くて魅力でしたので
作り込んでいったら、複数のファイルを選択できないのに気づきました。
ListView1.MultiSelect:=false;でないと動かないのですね。
これも何とかならないんでしょうね。

ツリーフォルダをしこしこ作ったのですが
私の力では、ネットワークができませんでした。
いやそれしかできなかったです。

それにしても、DemoにあるShellTreeviewは7でも使えるのだから
やはりプロが作ったのはたいしたもんですね。
これってソースもあるから改造できないのですか?
もっとも見てみたけどさっぱり解らなかったです。(^_^;)
やはり、ShellTreeviewこれでいくしかないかなあ〜。
ルートも変えられるし。
私がここ一週間没頭して挫折したエクスプローラまがいのベース部分の
試作途中です。
http://www016.upp.so-net.ne.jp/miyaindex/CustomMaidType.zip
マスターのサンプルをベースにぐちゃぐちゃにいじり回しました。
数々の失礼をお許し下さい。ご免下さい。m(_ _)m

あと、アイコンをダブルクリックするのもマスターに教えてもらったものです。
ただ、ファイル名を変更できないままです。


[3897] Re6:Delphi6による動作検証返信 削除
2010/11/5 (金) 21:30:04 Mr.XRAY
▼ 宮さん

宮さんの書いていることは,おそらく多くの人が思っていることだと思い
ますね.マイクロソフトしては,どうしも,マイピクチャーや,マイミュ
ージックというフォルダを使わせたいんだと思います.

私の周囲の人に,もちろん,この方が多いのですが,ドライブという概念,
知識がある人は少ないです,
多くの人は,マイ何とかです.当然普通にダウンロードしたり,ワードの
文書を作成した時もデフォルトでそうなっていますから.

> ListView1.MultiSelect:=false;でないと動かないのですね。
> これも何とかならないんでしょうね。


これぐらいだったら...

> http://www016.upp.so-net.ne.jp/miyaindex/CustomMaidType.zip
> マスターのサンプルをベースにぐちゃぐちゃにいじり回しました。


なるほど,動かしてみました.TWebBrowserでファイルリストですね.

ところで,
特殊フォルダを扱ったするには,ウィンドウズのシェルの名前空間という
機能を使います.項目識別子,PItemIDListというやつで管理します.
汎用的にフォルダツリーやファイルリストを作成するにはこれを使います.
Delphi付属のシェルコンポーネントもそうです.

> これは、職場で他の変なフォルダに書き込んだり
> 読み込んだりしないようにルートフォルダを決めておく前提ですね。


ということなんです.これで今のところ十分機能していますので.
詳細表示以外は無用ですし.

詳細表示は,OSが違っても間違いなく同様なコードで処理できます.
他の表示は,宮さんもご存知の通り違いがあり,OSの違いを考慮するのは
結構ややこしそうです.
エクスプローラと同じ機能を望むなら,エクスプローラそのものを使うのが
一番でしょう(笑)

宮さんのような多機能のブラウザに実装するなら,詳細表示だけにして,
画像などの表示は,それ専用のコントロールを作成して表示する,という
考え方もあるのではないかと,思うこともあります.

> やはり、ShellTreeviewこれでいくしかないかなあ〜。
> ルートも変えられるし。


でしょうね.


[3898] Re7:Delphi6による動作検証返信 削除
2010/11/6 (土) 12:26:42 宮 〔HomePage
▼ Mr.XRAYさん
>
読んで下さってありがとうございました。
実は先生に添削してもらいたかったもので。
手に負えないので、試作途中で投げましたけど。
なにかヒントがもらえるのではないかという下心もあり。(^_^;)

やはり、エクスプローラーとインターネットエクスプローラーは
msの旗艦ソフトですね。無料だから気づかないけど。

(#だって、Linuxにエクスプローラーほどの使い勝手をさせるソフトが
未だにでないのだから。
デスクトップに熱心なUbuntuさんでもまだ
sudo /etc/init.d/networking restart
などとやっているのだから100年たってもWindowsには対抗できない。)

でも、msも7でエクスプローラーにBrowserをはっきり使ってきたのですから
今後、この関連のサンプルコードもお願いします。

参考やヒントは得られました。
ありがとうございました。



[3904] Re8:Delphi6による動作検証返信 削除
2010/11/9 (火) 17:42:40 Mr.XRAY
▼ 宮さん

> 実は先生に添削してもらいたかったもので。

とんでもはっぷん,あるいてじゅっぷんです.
アドバイスさえ,ままなりません,

宮さんの場合,多機能のブラウザということで,アプリの画面でファイル
の管理もできる機能をということで,エクスプローラのような操作を実現
させるわけですよね.

TEmbeddedWBコンポーネント上に表示させると,ファイル名の変更等も
自分でコーディングしないといけないので決行大変ですね.
また,左側にフォルダツリーを表示しても,右ペインの左側にも,
Windows XP以降ではフォルダ関係のペインが表示されてしまいます.

IShellBrowserインターフェイスかなんかで表示すれば,もしかしたら
という思いはあるのですが,試したことはないし,できたとしても,
TEmbeddedWBコンポ上でうまく表示可能かも分かりません.
今,TEmbeddedWBのサイトを検索したら,IShellBrowserの単語が書いて
あるページがありました.
何か関係があるかどうかは,全くわかりません.


[3925] Re9:Delphi6による動作検証返信 削除
2010/11/12 (金) 14:57:57 宮 〔HomePage
▼ Mr.XRAYさん
> また,左側にフォルダツリーを表示しても,右ペインの左側にも,
> Windows XP以降ではフォルダ関係のペインが表示されてしまいます.


私の、Windows7はXPのエクスプローラーのような左ペインが表示されません。
購入当初どこかカスタマイズしたのかな?

IShellView/IShellBrowserを読んでいます。今のところさっぱり解りません。
ぼちぼち勉強します。
ありがとうございました。

[3926] Re10:Delphi6による動作検証返信 削除
2010/11/12 (金) 16:07:04 Mr.XRAY
▼ 宮さん

> 私の、Windows7はXPのエクスプローラーのような左ペインが表示されません。
> 購入当初どこかカスタマイズしたのかな?


いえ,Windows Vista以降,IEとエクスプローラのインターフェイスが変更
になったためです.
Windows XPではIShellBrowserはフォルダビュー(フォルダ内のビューの意味
でファイルのリストのことです)は,確かにフォルダビューだったのですが,
左の何とかというペインも表示されるようになっていました.
これを制御する方法はないようです.

Windows Vista以降では,このペインの部分とフォルダビューが独立した
機能(インターフェイス)となったようです.

インターフェイス(Interface)関係の実装は難しいですよ.
TInterfacedObjectを継承して,
IDispatchやら,IServiceProviderとかIUnknownやら


[3928] Re11:Delphi6による動作検証返信 削除
2010/11/12 (金) 16:49:03 Mr.XRAY
> Windows XPではIShellBrowserはフォルダビュー(フォルダ内のビューの意味
> でファイルのリストのことです)は,確かにフォルダビューだったのですが,
> 左の何とかというペインも表示されるようになっていました.
> これを制御する方法はないようです.


こんな感じです.下がWindows 7の図です


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82