喫茶XRAYトップページ

[スレッド全体
]

[11256] Re5:TSaveDialogダイアログの挙動返信 削除
2017/7/11 (火) 08:49:43 taka
まとめ
(1) SaveDialog1.FileName の最後の文字が \ で終わる
    または、 / | < : " が文字列内に含まれていると
    CommDlgExtendedErrorが発生し、Dialog は表示されない。

(2) Delphi 2005は、update2まで当てていないと
    マルチバイト文字が正常に処理さずシングルバイト処理される可能性があり
    内部でファイル名を破壊したあとにGetSaveFileName関数を呼び出す可能性がある。

  with SaveDialog1 do
  begin
//  InitialDir := 'フォルダ名';
    FileName := Edit1.Text;
    //ファイル選択のオープンダイアログを表示
    if (Execute = True) then
        ShowMessage('File : '+ FileName)
    else
    begin
      case CommDlgExtendedError of // CommDlg.CommDlgExtendedError
        0 : ShowMessage('Save file was cancelled');
        $3002 : ShowMessage('ファイル名が無効です。');
      else
        ShowMessageFmt('Error : CommDlgExtendedError 0x%X',[CommDlgExtendedError]);
      end;
    end;
  end;


[11257] まとめ返信 削除
2017/7/11 (火) 11:58:46 Mr.XRAY
▼ takaさん
> まとめ

あらら,スミマセン.
igy さんがレスでよく書いているように,update のチェックは基本ですね.

>         ShowMessageFmt('Error : CommDlgExtendedError 0x%X',[CommDlgExtendedError]);

これいいですね.気に入りました.
こういう表示にしておけば分かりやすいです.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82