こんにちは、小ネタです。
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で、他のバージョンはどうなのか知りませんが・・・・
|