■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
|
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った): |
■ ページの共有: |
[ サイト内検索 ]
![]()
カスタム検索
|
#324-0エクスプローラ左窓の様なフォルダツリー(再投稿)の動作について匿名3242002-03-13(水) 09:03
#326-0RE#324:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作について高架の藤2002-03-13(水) 11:44
#329-0RE#326:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作について匿名3292002-03-13(水) 13:39
#330-0RE#324:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作についてK.J.K.2002-03-13(水) 13:57
#331-0RE#329:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作について高架の藤2002-03-13(水) 14:39
#332-0RE#330:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作についてゆう(U)2002-03-13(水) 14:52
#333-0RE#331:サンプルコード#142の動作について匿名3332002-03-13(水) 14:55
#334-0RE#332:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作について匿名3342002-03-13(水) 14:57
#336-0RE#329:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作についてゆう(U)2002-03-13(水) 15:27
#337-0RE#334:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作についてゆう(U)2002-03-13(水) 15:37
#340-0RE#333:サンプルコード#142の動作について高架の藤2002-03-13(水) 16:12
#341-0RE#340:サンプルコード#142の動作について匿名3412002-03-13(水) 16:26
#342-0RE#341:サンプルコード#142の動作について高架の藤2002-03-13(水) 17:25
#348-0RE#342:サンプルコード#142の動作について匿名3482002-03-14(木) 08:22
#350-0RE#348:サンプルコード#142の動作についてゆう(U)2002-03-14(木) 10:07
#352-0RE#350:サンプルコード#142の動作について匿名3522002-03-14(木) 10:36
#353-0RE#352:サンプルコード#142の動作について高架の藤2002-03-14(木) 12:52
#356-0RE#353:サンプルコード#142の動作について匿名3562002-03-14(木) 14:24
#357-0RE#356:サンプルコード#142の動作について高架の藤2002-03-14(木) 14:27
#359-0RE#357:サンプルコード#142の動作について匿名3592002-03-14(木) 15:07
#360-0RE#359:サンプルコード#142の動作について高架の藤2002-03-14(木) 17:00
#362-0RE#360:サンプルコード#142の動作についてゆう(U)2002-03-15(金) 08:34
#326-0RE#324:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作について高架の藤2002-03-13(水) 11:44
#329-0RE#326:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作について匿名3292002-03-13(水) 13:39
#330-0RE#324:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作についてK.J.K.2002-03-13(水) 13:57
#331-0RE#329:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作について高架の藤2002-03-13(水) 14:39
#332-0RE#330:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作についてゆう(U)2002-03-13(水) 14:52
#333-0RE#331:サンプルコード#142の動作について匿名3332002-03-13(水) 14:55
#334-0RE#332:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作について匿名3342002-03-13(水) 14:57
#336-0RE#329:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作についてゆう(U)2002-03-13(水) 15:27
#337-0RE#334:エクスプローラ左窓の様なフォルダツリー(再投稿)の動作についてゆう(U)2002-03-13(水) 15:37
#340-0RE#333:サンプルコード#142の動作について高架の藤2002-03-13(水) 16:12
#341-0RE#340:サンプルコード#142の動作について匿名3412002-03-13(水) 16:26
#342-0RE#341:サンプルコード#142の動作について高架の藤2002-03-13(水) 17:25
#348-0RE#342:サンプルコード#142の動作について匿名3482002-03-14(木) 08:22
#350-0RE#348:サンプルコード#142の動作についてゆう(U)2002-03-14(木) 10:07
#352-0RE#350:サンプルコード#142の動作について匿名3522002-03-14(木) 10:36
#353-0RE#352:サンプルコード#142の動作について高架の藤2002-03-14(木) 12:52
#356-0RE#353:サンプルコード#142の動作について匿名3562002-03-14(木) 14:24
#357-0RE#356:サンプルコード#142の動作について高架の藤2002-03-14(木) 14:27
#359-0RE#357:サンプルコード#142の動作について匿名3592002-03-14(木) 15:07
#360-0RE#359:サンプルコード#142の動作について高架の藤2002-03-14(木) 17:00
#362-0RE#360:サンプルコード#142の動作についてゆう(U)2002-03-15(金) 08:34
匿名3242002-03-13(水) 09:03
「こんな事できます!」から移動してまいりました。 どなたか#142 のサンプル「エクスプローラ左窓の様なフォルダツリー」を実行した方が いらっしゃいましたら教えていただきたいことがございます。 Win98,VB5.0(SP3),IE6.0という環境なのですが。。。 実行してもTreeViewには「デスクトップアイコン」が表示されているだけで クリックしても何の変化がありません。 この現象を回避するにはどのような処理をしてあげればよいのでしょうか?。
高架の藤2002-03-13(水) 11:44
> 「こんな事できます!」から移動してまいりました。 #良かった。移動してくださったんですね。 > どなたか#142 のサンプル「エクスプローラ左窓の様なフォルダツリー」を実行した方が > いらっしゃいましたら教えていただきたいことがございます。 > > Win98,VB5.0(SP3),IE6.0という環境なのですが。。。 > 実行してもTreeViewには「デスクトップアイコン」が表示されているだけで > クリックしても何の変化がありません。 > > この現象を回避するにはどのような処理をしてあげればよいのでしょうか?。 とりあえず、デバッグしてみましたか?1行づつ実行して見ましたか? 後、ソースコード中に「On Error Resume Next」が何箇所かありますが、 これらを全部コメントにしてみてください。 どこかでエラーになりませんか?
匿名3292002-03-13(水) 13:39
> > どなたか#142 のサンプル「エクスプローラ左窓の様なフォルダツリー」を実行した方が > > いらっしゃいましたら教えていただきたいことがございます。 > > > > Win98,VB5.0(SP3),IE6.0という環境なのですが。。。 > > 実行してもTreeViewには「デスクトップアイコン」が表示されているだけで > > クリックしても何の変化がありません。 > > > > この現象を回避するにはどのような処理をしてあげればよいのでしょうか?。 > とりあえず、デバッグしてみましたか?1行づつ実行して見ましたか? ステップ実行中に発生したエラーです。 Public Sub Tvw_AddRootFolder(ByVal m_TreeView As TreeView, _ ByVal m_ImageList As ImageList, _ ByVal m_PictureBox As PictureBox, _ Optional ByVal varRootPath As Variant, _ Optional ByVal strInitPath As String) の「Set objRootNode.Tag = objRootFolder.Items.Item」部分で、 「実行時エラー424:オブジェクトが必要です」と出ました。
K.J.K.2002-03-13(水) 13:57
# 「引用」は「引用」です。>匿名318さん。 # 全文を引用する意味はない、ということです。 で、フォルダーツリーは説明が難しいので、サンプルを作りました。 http://www.koalanet.ne.jp/~akiya/vbtaste/vbp/FldrTr01.lzh # タイプライブラリを同梱してますので、それを用いてください。
高架の藤2002-03-13(水) 14:39
> > とりあえず、デバッグしてみましたか?1行づつ実行して見ましたか? > の「Set objRootNode.Tag = objRootFolder.Items.Item」部分で、 > 「実行時エラー424:オブジェクトが必要です」と出ました。 デバッグしてます? このエラーはこの行のいずれかのオブジェクトが正しく設定されていないと言う事です。 どのオブジェクトが正しくないか確認しましたか? 確認したら、そのオブジェクトを生成している個所を確認してください。 #良く見れば、 #「エクスプローラ左窓の様なフォルダツリー(再投稿)の動作について」 #と #「TreeViewのNodes.Addについて(「はじめたばかりの人専用」から移ってきました)」 #と言う似た内容のスレッドが走ってますね・・・紛らわしい・・・
ゆう(U)2002-03-13(水) 14:52
Visual Baisc magazine 2000年 6月号の 「こだわりコンポーネント工房」 でSHBrowseForFolderを使用してコントロールを 作成するという物がありました。 ※フォルダ選択ダイアログのアノ部分を 使わせてもらうって方法です ネットワーク専用として作成されてますが 簡単に改造できるのでバックナンバーを 取得して見てはいかがでしょう。
匿名3332002-03-13(水) 14:55
このサンプルコードの注意書きで以下の文章があったのですが、 今回の「実行時エラー424:オブジェクトが必要です」と何か関係があるのでしょうか?。 アーリーバインドでShellオブジェクトを利用しますのでIEのバージョン により、事前に参照設定するDLLが異なります。下記を参考にして下さい。 動作環境 Windows 98 + IE4 の場合、SHDOCVW.DLLを参照設定。(動作確認) Windows 98 + IE5 の場合、SHDOC401.DLLを参照設定。(未確認) > > > とりあえず、デバッグしてみましたか?1行づつ実行して見ましたか? > > の「Set objRootNode.Tag = objRootFolder.Items.Item」部分で、 > > 「実行時エラー424:オブジェクトが必要です」と出ました。 > デバッグしてます? > このエラーはこの行のいずれかのオブジェクトが正しく設定されていないと言う事です。 > どのオブジェクトが正しくないか確認しましたか? どのような確認をしたらよいのですか?。
匿名3342002-03-13(水) 14:57
> Visual Baisc magazine 2000年 6月号の > 「こだわりコンポーネント工房」 > でSHBrowseForFolderを使用してコントロールを > 作成するという物がありました。 > ※フォルダ選択ダイアログのアノ部分を > 使わせてもらうって方法です > > ネットワーク専用として作成されてますが > 簡単に改造できるのでバックナンバーを > 取得して見てはいかがでしょう。 これってエクスプローラの様にファイルの表示(ListView)とかできるのでしょうか?。
ゆう(U)2002-03-13(水) 15:27
> の「Set objRootNode.Tag = objRootFolder.Items.Item」部分で、 > 「実行時エラー424:オブジェクトが必要です」と出ました。 タブン「Folder オブジェクト」の問題でしょう。 参照設定で「Microsoft Scripting Runtime」をチェック していませんか? なら・・・ Dim objRootFolder As Shell32.Folder 'ルートのFolderオブジェクト の様に宣言するか、優先順位を変更しないと 期待しているFolder型ではないものを宣言している ことになります。 ちなみに、私の環境でも「デスクトップ」だけしか 表示されません。 デスクトップだけで、その直下のNodeが作成されない のが問題なのかと思います…詳しい解析はしてませんが。 Win2000(SP2)/VB6.0(SP5)/IE5.5 参照設定 「Microsoft Shell Controls And Automation」 SHELL32.DLL(5.0.3315.2902)
ゆう(U)2002-03-13(水) 15:37
> これってエクスプローラの様にファイルの表示(ListView)とかできるのでしょうか?。 ファイルの表示部分(右側のListView)は別ですが・・・ フォルダツリーにファイルも表示させる事は簡単に出来ます。 詳しくは「SHBrowseForFolder(API)関数」をMSDNで 読んでみて下さい・・・ BIF_BROWSEINCLUDEFILES = &H4000& でフォルダ以外のファイルも表示されます。 Webで検索すると幾つも見つかるので動作を自分の目で 確かめてみてはいかがでしょう。
高架の藤2002-03-13(水) 16:12
> このサンプルコードの注意書きで以下の文章があったのですが、 > 今回の「実行時エラー424:オブジェクトが必要です」と何か関係があるのでしょうか?。 > > Win98,VB5.0(SP3),IE6.0という環境なのですが。。。 と言う事でしたので、取り敢えず、VB6ではなく、VB5のTreeViewを使ってみました・・・ 発生しますね、このエラー。 どうも、VB5版のツリービューではノードのTagプロパティにオブジェクトをセットできないようです。 #「VB5じゃ動かないと」言う結論になりそう・・・ しかし、VB5とVB6のTreeViewだと、ライブラリ名称が違うの(ComctrlLibとMSComctlLib)で、 そこを修正しないと、まったく動かないはずですね・・・ どのコンポーネントを使っています?
匿名3412002-03-13(水) 16:26
> > このサンプルコードの注意書きで以下の文章があったのですが、 > > 今回の「実行時エラー424:オブジェクトが必要です」と何か関係があるのでしょうか?。 > > > > Win98,VB5.0(SP3),IE6.0という環境なのですが。。。 > > と言う事でしたので、取り敢えず、VB6ではなく、VB5のTreeViewを使ってみました・・・ > 発生しますね、このエラー。 > どうも、VB5版のツリービューではノードのTagプロパティにオブジェクトをセットできないようです。 > #「VB5じゃ動かないと」言う結論になりそう・・・ > > しかし、VB5とVB6のTreeViewだと、ライブラリ名称が違うの(ComctrlLibとMSComctlLib)で、 > そこを修正しないと、まったく動かないはずですね・・・ > どのコンポーネントを使っています? ComctrlLibをつかっております。
高架の藤2002-03-13(水) 17:25
> > しかし、VB5とVB6のTreeViewだと、ライブラリ名称が違うの(ComctrlLibとMSComctlLib)で、 > > そこを修正しないと、まったく動かないはずですね・・・ > > どのコンポーネントを使っています? > ComctrlLibをつかっております。 なら、確定ですね。 「このサンプルはVB5では動きません」です。 VB5で動作させるなら、フォルダオブジェクトの管理をTagプロパティ以外で行うように作り直す必要が有りますね。 例えば、FullPathをキーにCollectionで管理するようにするとか・・・ 実際の修正方法はご自分で考えて見てください。 #確か最初の投稿で「勉強のため」とおっしゃってましたよね。
匿名3482002-03-14(木) 08:22
> 「このサンプルはVB5では動きません」です。 > > VB5で動作させるなら、フォルダオブジェクトの管理をTagプロパティ以外で行うように作り直す必要が有りますね。 > 例えば、FullPathをキーにCollectionで管理するようにするとか・・・ > 実際の修正方法はご自分で考えて見てください。 昨日から思考錯誤してみたのですが、何からどのような手順で進めていったらよいのかがさっぱり 見当もつきません。すみませんがご指導の程 よろしくお願いいたします。
ゆう(U)2002-03-14(木) 10:07
> 昨日から思考錯誤してみたのですが、何からどのような手順で進めていったらよいのかがさっぱり > 見当もつきません。すみませんがご指導の程 よろしくお願いいたします。 まずはコントロールの基本的な使用方法を調べて、簡単な ツリーを作成できるようにして下さい。 デスクトップ−マイコンピュータなどどの様に取得するか 調べてみて下さい。 ※先のItems.Item部分で停止し中身を確認するとか 初期設定時間がかかる方法ですが、とりあえず全てのツリーを 完成させてみてください。 その後、初期設定時間を短縮する方法を考えてみてください。 ※一般的なのは、子のNodeはダミーで作成しておき(+表示用) 展開された時にその子のNodeを完成させるとか… デスクトップやそのアイコンなど、難しそうな部分は サンプルを参考にすると、基本的なコントロールの 使用方法がわかれば比較的簡単に実現できると思います。 サンプルのポップアップメニューの部分はとりあえず 後回しでツリーの完成後の課題にしてしまえば?
匿名3522002-03-14(木) 10:36
サンプルコード#142に手を加えてファイラーを作成しようとしています。 私の環境はWindows98/VB5.0です。 しかし、このコードはVB5では動作しない(VB5版のツリービューではノードのTagプロパティに オブジェクトをセットできない)ということがわかりました。 それで昨日、高架の藤さんからのアドバイスで「VB5で動作させるなら、フォルダオブジェクトの管理を Tagプロパティ以外で行うように作り直す必要が有りますね。例えば、FullPathをキーにCollectionで 管理するようにするとか・・・」と言われました。 エラー発生箇所は「Set objRootNode.Tag = objRootFolder.Items.Item」でオブジェクトが必要です (実行時エラー424)。 昨日から思考錯誤してみたのですが、さっぱり見当もつきません。 すみませんがご指導の程 よろしくお願いいたします。
高架の藤2002-03-14(木) 12:52
> サンプルコード#142に手を加えてファイラーを作成しようとしています。 > 私の環境はWindows98/VB5.0です。 > それで昨日、高架の藤さんからのアドバイスで「VB5で動作させるなら、フォルダオブジェクトの管理を > Tagプロパティ以外で行うように作り直す必要が有りますね。例えば、FullPathをキーにCollectionで > 管理するようにするとか・・・」と言われました。 念のため・・・ 「こうすれば直ぐ直ります」と言う意味じゃ無いですよ。 このサンプルは、VB5では動かないので、基本的に作り直す必要が有ります。 #全面改訂とは言いませんが。 その方法の1つとして、「Collectionを使うと言う選択も有る」と言うだけです。 #何が問題でどうすれば良いか理解できないなら、別のサンプルを捜した方が早いかも知れませんね。 取りあえず私がやってみたのは、 (1)Collection型変数を1つ用意する。 (2)(1)のコレクションにオブジェクトを設定/参照するサブルーチンを新規に作る。 (3)tagに設定、tagから参照している所を(2)のサブルーチンに置き換える。 と言う方法です。
匿名3562002-03-14(木) 14:24
> このサンプルは、VB5では動かないので、基本的に作り直す必要が有ります。 > #全面改訂とは言いませんが。 > その方法の1つとして、「Collectionを使うと言う選択も有る」と言うだけです。 ちょっと前のレスだとFullPathをキーに。。。とありましたが今回の方法にはFullPathキーが どのように絡んでくるのですか?。 > > 取りあえず私がやってみたのは、 > (1)Collection型変数を1つ用意する。 > (2)(1)のコレクションにオブジェクトを設定/参照するサブルーチンを新規に作る。 > (3)tagに設定、tagから参照している所を(2)のサブルーチンに置き換える。 > と言う方法です。
高架の藤2002-03-14(木) 14:27
> ちょっと前のレスだとFullPathをキーに。。。とありましたが今回の方法にはFullPathキーが > どのように絡んでくるのですか?。 > > (2)(1)のコレクションにオブジェクトを設定/参照するサブルーチンを新規に作る。 ここで、コレクション管理用のキーにNodeオブジェクトのFullpathプロパティを使ってみました。 エクスプローラタイプのノード構成に限定するなら、Fullpathは各ノードで一意に決定されるはずですので。
匿名3592002-03-14(木) 15:07
> > > (2)(1)のコレクションにオブジェクトを設定/参照するサブルーチンを新規に作る。 > ここで、コレクション管理用のキーにNodeオブジェクトのFullpathプロパティを使ってみました。 > エクスプローラタイプのノード構成に限定するなら、Fullpathは各ノードで一意に決定されるはずですので。 (1) Dim myCollection As Collection ですか??(Collection型変数を1つ用意する。)。 (2) Set myCollection = objRootNode.FullPath ですか??(オブジェクトを設定)。 ???? (参照するサブルーチンを新規に作る。) (3) ???? (tagに設定、tagから参照している所を(2)のサブルーチンに置き換える。) ????の部分が難しい。。。教えていただけないでしょうか??。
高架の藤2002-03-14(木) 17:00
> (1) Dim myCollection As Collection ですか??(Collection型変数を1つ用意する。)。 > (2) Set myCollection = objRootNode.FullPath ですか??(オブジェクトを設定)。 > ???? (参照するサブルーチンを新規に作る。) > (3) ???? (tagに設定、tagから参照している所を(2)のサブルーチンに置き換える。) ・・・要するに「コレクションが何だか分かって無い」と言う事でしょうか? でしたら、このサンプルをいじる前に「コレクションの使い方」から勉強した方が良いと思います。 もしくはコレクションを使わない別の方法を「自分で」考えて見てください。 「コレクションを使う方法」はあくまで「私がやってみた方法」であり、唯一絶対の解じゃ有りません。 あなたが理解&使用できる機能を捜してみてください。 後、もう1回書いておきます。 「何が問題でどうすれば良いか理解できないなら、別のサンプルを捜した方が早いかも知れませんね。」 ちなみに(2)は間違っていますよ。
ゆう(U)2002-03-15(金) 08:34
私の環境で[デスクトップ]しか表示しない原因がわかりました、 「SHSimpleIDListFromPath」が機能してないのが原因でした。 'パス名が特殊フォルダ表示名の場合 ' If (SHSimpleIDListFromPath(strPath) = 0) Then CSIDL = CSIDLFromDisplayName(strPath) 'CSIDL定数を取得 If (CSIDL <> -1) Then Call SHGetSpecialFolderLocation(0, CSIDL, pidl) 'PIDLを取得 Else 'CSIDL定数を取得できない場合はサブフォルダの列挙で調べる HasSubFolder_Attr = HasSubFolder_Enum(objFolderItem.GetFolder) Exit Function End If ' End If とする事でツリーが出来るようになりました。
このページと関連する記事:
#361-0デスクトップ以下のファイル情報の取得方法2002-03-15(金) 08:16#20121-0List Viewコントロールにファイル情報を表示2002-03-08(金) 15:32
#27601-0コレクションについての質問です2002-03-15(金) 14:38
#512-0List Viewコントロールにポップアップメニューを表示するには?。2002-04-03(水) 09:38
#20019-0Tree Viewコントロールにフォルダ情報を表示2002-03-04(月) 11:20
#6808-0TreeViewでの親キー取得方法2002-04-11(木) 09:36
#1460-2ツリービューの画面上の先頭ノードを取得したい2002-07-08(月) 01:57
#3512-0TreeViewコントロールのKeyの設定について1999-08-19(木) 20:08
#10545-0ツリービューのドラッグドロップについて2000-05-15(月) 19:30
#47107-0TreeViewへのDrag&Dropの方法について2001-09-22(土) 09:50