SaveDialogの不審な挙動

解決


komin  2007-03-05 22:38:01  No: 25140

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:\'のときだけダイアログが表示されず,上書き確認ももちろん出ないで保存されてしまいます。何か見落としているでしょうか?


igy  2007-03-06 00:42:58  No: 25141

試してみたところ、
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;


komin  2007-03-08 20:52:14  No: 25142

どこかで「\」がまぎれ込んで,A:\\となっていました。これを直したら解決しました。


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

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






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