DialogBoxでのファイル名複数選択について


とんとん  2004-07-23 01:53:26  No: 10050

TOpenDialogを使用しています。
ユーザにファイルを複数選択させ、選択した順序を含めたファイル群を
取得したいと思っています。

Optionsプロパティに ofAllowMultiSelect, ofHideReadOnly, ofEnableSizing
をセットし、Executeを実行。Filesプロパティを取得してShowMessageしてみた
のですが、3つ以上選択したあたりから、選択順序が正しく取得できなくなる
場合があります (勝手に順序が変わってしまう)。

解決方法をご存じの方がいらっしゃいましたら、ご教授頂けませんでしょうか。
よろしくお願いいたします。

使用環境:Delphi6 Professional (SP2 on Windows98)


にしの  2004-07-23 02:28:19  No: 10051

OpenDialogのファイル名入力欄に出ている時点で変わっていませんか?
Filesを見る限りでは、きちんと、ダイアログのファイル名入力欄に出ている順番になっています。
ファイル名入力欄は、マウスで選択した順番には入らないことがありますね。
OSの仕様かも。


にしの  2004-07-23 02:31:40  No: 10052

WindowsXP Pro + Delphi7Proでは、次のような動作になります。

・1.txtを選択
結果:1.txt
・次に2.txtを選択
結果:"2.txt" "1.txt" 
・次に3.txtを選択
結果:"3.txt" "1.txt" "2.txt" 

最後に選択したものが先頭へ、2番目以降は昇順のようです。

ちなみに、逆に選択した場合。

・3.txtを選択
結果:3.txt
・次に2.txtを選択
結果:"2.txt" "3.txt" 
・次に1.txtを選択
結果:"1.txt" "2.txt" "3.txt" 

でした。


とんとん  2004-07-26 18:34:51  No: 10053

にしのさん、ありがとうございます。
お返事が遅くなり、申し訳ございませんでした。

仰るとおり、ダイアログボックスのファイル名入力欄に出ている時点で
順序が変わっています。説明が曖昧ですみません。
また、にしのさんのご指摘通り、3 -> 2 -> 1 と選択したときは
何故か正常に表示されました。
そのため、質問欄に "場合がある" と記述いたしました。
(これも説明不足でスミマセン)

仕様が把握できれば納得できるのですが、いまいち掴めなかったために
質問した次第です。すみませんが、よろしくお願いいたします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加