喫茶XRAYトップページ

[スレッド全体
]

[8379] 付属のシエルコンポーネントは修正が必要返信 削除
2015/1/9 (金) 00:06:38 Mr.XRAY
分かりました.

> これはですね.Vista 以降の現象ですね.多分(自信なし)
> 他にもあるかも知れません.


ググってみたら,ありました.
昔からある現象のようです.DblClick 内での ShellExecute 関数の挙動のようです.
[Enter] キーはコンテキストメニューのコマンドを実行しているようです.
そこで,ShellCtrls.pas 内の以下のようにすれば,現在のところ OK のようです.
動作確認環境は前と同じです.

ShellCtrls.pas 等があるフォルダにパスを通さないと有効になりません.
バスを通して,修正したら,プロジェクトを再構築してください.


procedure TCustomShellListView.DblClick;
begin
  if FAutoNavigate and (Selected <> nil) then
    with Folders[Selected.Index] do
      if IsFolder then
        SetPathFromID(AbsoluteID)
      else
        ExecuteDefault;                                      //追加
//        ShellExecute(Handle, nil, PChar(PathName), nil,    //削除
//          PChar(ExtractFilePath(PathName)), 0);            //削除
  inherited DblClick;
end;


以下をヒントに修正コードを作成しました.

http://www.delphipages.com/forum/showthread.php?t=122681


[備考]
私自身は,Delphi 付属のシェルコンポーネントを使用していませんので,
気づきませんでした.
昔は,サードパーティ製を,今は自作のシェルコンポーネントを使用しています.
特定の Delphi のバージョン用ですので,公開の予定はありません.
サンプルプログラム集の [819] [820] が元となっているコンポーネントです.


前に UP したファイルですが,EXE を作成し直して再 UP しておきます.
http://mrxray.on.coocan.jp/Delphi/zip/ShellComponent_D7.zip


[8381] Re:付属のシエルコンポーネントは修正が必要返信 削除
2015/1/9 (金) 09:39:08 sato
▼ Mr.XRAYさん

ありがとうございました。
結局、
ShellListView1DblClickに書いた
ShellExecute(0,'open',PChar(PathName),nil,nil,SW_NORMAL);
では、notepadで開けて
ShellCtrls.pas 内の
 ShellExecute(Handle, nil, PChar(PathName), nil,PChar(ExtractFilePath(PathName)), 0);            //削除
では開けないということですね。(もう深く追求しないことにします)

教えていただいたように修正してバッチリ確認できました。
本当に助かりました。
以前は、伊藤隆志さんという方のシェルコンポーネントを使用していましたが、
Windows7でShellListViewにアイコンが表示されなくなり、フォルダとファイルの
区別がつかないということから始まった事件でした。
3日間も喫茶室を貸し切りにしていただき感謝の言葉もありません。
ありがとうございました、ヒゲの似合うマスター(?)へ。

[8383] Re2:付属のシエルコンポーネントは修正が必要返信 削除
2015/1/9 (金) 13:12:57 Mr.XRAY
▼ satoさん

> ShellCtrls.pas 内の
>  ShellExecute(Handle, nil, PChar(PathName), nil,PChar(ExtractFilePath(PathName)), 0);            //削除
> では開けないということですね。(もう深く追求しないことにします)


ですね.私もなぜなのかは追及しませんでした.
ShellExecute を単独で実行する分には成功するんですけどね.
[Enter] キーで Notepad.exe 等でテキストファイルを表示するので,
そのコマンドを実行するようにしてみたのです.

やってみてから,ネットを検索したら,そのようなことがあったんです.

> 3日間も喫茶室を貸し切りにしていただき感謝の言葉もありません。

こういうのは,皆さんの参考になると思います.
ここのお客様は,私と同じでおとなしい方々なのでチャチは入れませんが.

> ありがとうございました、ヒゲの似合うマスター(?)へ。

えっ!? スケベなじゃなくて .... ?
あっ,そうだ.今はヒゲないんです.ハハハッ.


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