SaveDialogを使ってファイルを保存するという,極めて初歩的なところで引っかかっています。
Fname := DxfDir + EdtKouban.text + FormatFloat('-0#',Dxfnum) + '.dxf';
SaveDialog1.InitialDir := DxfDir;
SaveDialog1.FileName := Fname;
if SaveDialog1.Execute then begin
DXFList.SaveToFile(Fname);
inc(DxfNum);
end;
このようなコードになっているのですが。保存先がハードディスク上の下位フォルダであればダイアログが表示されますが,FDも指定つまりDxfDir := 'A:\'のときだけダイアログが表示されず,上書き確認ももちろん出ないで保存されてしまいます。何か見落としているでしょうか?
試してみたところ、
Delphi5では、
ADir := 'c:\Program Files';
ADir := 'c:';
ADir := 'a:'; // FDをドライブに挿入すること。
いずれもダイアログは表示されました。
procedure TForm1.Button1Click(Sender: TObject);
var
ADir: String;
begin
ADir := 'c:\Program Files';
//ADir := 'c:';
//ADir := 'a:'; // FDをドライブに挿入すること。
if not DirectoryExists(ADir) then
begin
MessageDlg('「' + ADir + '」が見つかりません。', mtError, [mbOk], 0);
exit;
end;
SaveDialog1.InitialDir := ADir;
if SaveDialog1.Execute then
begin
MessageDlg('「保存」を選択しました。', mtInformation, [mbOk], 0);
end;
end;
どこかで「\」がまぎれ込んで,A:\\となっていました。これを直したら解決しました。
ツイート | ![]() |