名前 題名 ▼ 宮さん > ▼ Mr.XRAYさん > > 一応やってみました. > > > > (1)Button1クリックでフォルダ内のファイルをアイコン表示 > > アイコン表示しかできないようです. > > (2)SpeedButtonクリックで選択ファイルのファイル名をMemo1に表示 > > (3)ファイル上のマウス右クリックで,選択ファイルをMemo1に表示 > > > Mr_XRAYさん、皆さんありがとうございました。 > 亀レスですみません。 > 本当に、難しいとはココに限ります。DelphiQ&Aではとてもココまで > 追求は出来なかったでしょう。 > 感謝します。 > > アイコンをコンテキストメニューの代わりに右クリックで > ファイルバスを取得して、自分の指定したビューワーに表示したいですから > 番号でいえば(3)になると思います。 > > ぼ〜っとしていたわけではありませんで、自分の知識レベルでは > 途中経過では、ついて行けないので、傍観させて頂いていました。 > > それと、私の既存のプログラムにファイルコピー、削除、移動 > コンポーネントにSHFILEOPSTRUCTを使っていましたが、 > CPU負荷が大きいのとリソースを食うので、 > 使いやすい?ようにしたShfOperationコンポーネントに切り替えていましたが、 > このコンポーネントのバグ(仕様かも) > を発見しまして、大変だと、その再現テストと修正、検証を夢中でやっていました。 > > 長文になりますが、かいつまんで書きますと、 > コピー先に同じファイル名で更新日が新しいファイルがあった場合 > コピー元ファイルが同じ名前で更新日が古い場合、 > ファイル名に日付文字列を付けて名前変更してコピーするとき > > ShfOperationは、名前を変更できないでコピー〜を勝手に付けてコピーするが、 > SHFILEOPSTRUCTは、正常に名前を変えてくれてコピーできる。 > 例とコード(略) > > FromFile D:\マイ ドキュメント\Temp\aaa.txt (2005/10/01/ 12:35) > ToFile(コピー先)D:\pppppp\aaa.txt(更新日 2008/02/14/ 20:15) > ファイル名を変更する。 > //SearchRec.Timeは検出した aaa.txtの 更新日2005/10/01 12:35. > yyyymmdd:= FormatDateTime('yyyymmddhhnnss', FileDateToDateTime(SearchRec.Time)); > ToFile2:=D:\pppppp\aaa.txt; ←最初予定したコピー先ファイル名,これを変更する > LastDelim := LastDelimiter('.', ToFile2); > Insert( '['+yyyymmddhhnnss+']', ToFile2, LastDelim); > ToFile:=ToFile2; > > ShowMessage(ToFile);→(D:\pppppp\aaa[200510011235].txt) > > ForceDirectories(ExtractFilePath( ToFile)); > > ShfOperation1.OperationF:=foCOPY; > ShfOperation1.Options.RENAMEONCOLLISION:=true; > ShfOperation1.Options.NOCONFIRMMKDIR:=true; > > ShfOperation1.FromFFList.Clear; > ShfOperation1.FromFFList.Add(FromFile); > ShfOperation1.ToFolder:= ExtractFilePath( ToFile); > ShfOperation1.ToFiles.Add(ToFile); > ShfOperation1.Execute; > コピー 〜aaa.txtになる。 > > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link