上書き保存の時に確認ダイアログを出すには?


sox  2006-04-08 22:15:12  No: 20919

Delphiに標準でついている、SaveDialogでは上書き確認ができないのですが、どのようにすればできるのでしょうか?


Mr.XRAY  URL  2006-04-08 23:38:33  No: 20920

今,手元のDelphi5でやってみましたが,私のDelphi5では上書き確認の
ダイアログが出ますね.OptionのofOverwritePromptがFalse(デフォルト)
のままになってるということはないですよね.

Trueにしてあるとすると,そのDelphiは壊れている可能性がありますね.
再インストールしてみたらどうなりますか.


sox  2006-04-09 01:24:36  No: 20921

SaveDialogで上書き確認をやらず、自分で上書き確認の処理を書くとどうなりますか?


may_wind  2006-04-09 02:29:42  No: 20922

>自分で上書き確認の処理を書くとどうなりますか?
そりゃ、当然その名前のファイルがあるかどうか調べて、自分の好きな
ようにダイアログを表示したり処理するんでしょうね。

どうなるかは貴方次第。


Mr.XRAY  URL  2006-04-10 07:58:37  No: 20923

>SaveDialogで上書き確認をやらず、
Optionの方はどうなったのでしょう.最初の質問は

>自分で上書き確認の処理を書くとどうなりますか?
既にレスがありますが,もちろん自分で書いても構いません.
その場合,どうなるかは,
プログラムする本人(処理内容)次第ということになります.


delphi forever  2006-04-12 00:30:31  No: 20924

私はいつもFileExistsで調べています。
ベタで書くならば、次のような感じ。

 if SaveDialog1.Execute then
 begin
     if FileExists(SaveDialog1.FileName) then

      if (MessageDlg('overwrite?',
        mtConfirmation,[mbYes,mbNo],0)<>mrYes) then Exit;

     try
        Something.SaveToFile( SaveDialog1.FileName);

     except
      MessageDlg('i/o error maybe',mtInformation,[mbOK],0)
     end
 end;

MessageDlgはF1キーのヘルプで調べてください。
mbOK に対応する リターンは mrOK のように b と r の部分が違うんで
ヘルプを参照して型を確認してください。

exceptは、たぶんいりません。同じような例外表示が普通に出ます。
Delphi製アプリって謎なエラー表示が多いんだけどってユーザーに
思われたくない場合は、キャッチして処理したほうがよいでしょう(汗)


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

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






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