名前 題名 ▼ Syakeさん > こんにちは、小ネタです。 > > TOpenDialogに関して > > フォルダーを指定してExecuteした場合、そのフォルダーが開くと > 思いきや、上手くいくケースとそうで無いケースがあります。 > > テスト状況 > > procedure ButtonClick(Sender TObject); > begn > if Sender = ButtomA then > OpenDialog1.InitialDir := := 'C:\XXXX\AAA' > else if Sender =ButtomB then > OpenDialog1.InitialDir := := 'C:\XXXX\BBB'; > if OpenDialog1.Execute then > begin > > end; > end; > 上記で、それぞれ交互にButtomをクリックしファイル(*.Txt)を開きます。 > > WindowsXPでは、初回は指定したフォルダーを表示して目的のファイル > を開くことが出来ますが、次のButtomでは前回開いた時のフォルダーを > 表示してしまいます。 > 内部でどうなっているのかわかりませんが、無視すんなよって感じです。 > > ちなみにWindws7では、事も無く上手くいきます。 > > で、コンポーネントを貼付けず、都度生成して使用するとXPでも上手 > くいきます。 > procedure ButtonClick(Sender TObject); > var > OpenDlg :TOpenDialog; > begn > OpenDlg :TOpenDialog.Create; > try > if Sender = ButtomA then > OpenDlg .InitialDir := := 'C:\XXXX\AAA' > else if Sender =ButtomB then > OpenDlg .InitialDir := := 'C:\XXXX\BBB'; > OpenDlg.Filter := 'テキスト|*.txt'; > if OpenDialog1.Execute then > begin > > end; > finally > OpenDlg.Free; > end; > end; > > > これはDelphiXEで、他のバージョンはどうなのか知りませんが・・・・ GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link