いつも、お世話になります
テスト的に、下のプログラムを実行した時に
procedure TForm1.Button1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if PrintDialog1.Execute then
begin
Printer.BeginDoc;
Printer.Canvas.TextOut(0,0,Memo1.Lines[0]);
Printer.EndDoc;
end;
end;
保存を3.5FDに行い、ディスクを抜いた後
印刷を実行すると、FDドライブにアクセスしてエラー表示します。
プログラムには、問題ないので印刷はされますが
事前に、FDアクセスしないように出来る方法は無いでしょうか?
(Win2000+Delphi7です)
よろしくお願いします。
SaveDialog.Executeが成功すると、カレントパスが、そのとき選んだファイルのパスに変更されます。
# つまり、A:\test.txtに保存したらA:\に
これ(カレントパス)が原因っぽいので、Executeに成功したら、SetCurrentDir(ExtractFileDir(Application.ExeName));などで適当な場所に戻してやれば、アクセスしなくなると思います。
カレントパスの変更が原因でしたら、TOpenDialog の Option プロパティー
に、予め ofNoChangeDir を true にしておけばよいのでは?
すみません、↑ の TOpenDialog を TSaveDialog に読み替えてください
そういうのがあったんですね。気づきませんでした。
にしのさん、Halbowさん 有難うございます
18〜20日まで、掲示板をチェックできなくて、お返事が遅れてしまいました。
ofNoChangeDirなんて言うのが有ったんですね
暫くレスが無かったので、あきらめていましたが
プロパティーで簡単に対応できたので助かりました。
ツイート | ![]() |