Delphiに標準でついている、SaveDialogでは上書き確認ができないのですが、どのようにすればできるのでしょうか?
今,手元のDelphi5でやってみましたが,私のDelphi5では上書き確認の
ダイアログが出ますね.OptionのofOverwritePromptがFalse(デフォルト)
のままになってるということはないですよね.
Trueにしてあるとすると,そのDelphiは壊れている可能性がありますね.
再インストールしてみたらどうなりますか.
SaveDialogで上書き確認をやらず、自分で上書き確認の処理を書くとどうなりますか?
>自分で上書き確認の処理を書くとどうなりますか?
そりゃ、当然その名前のファイルがあるかどうか調べて、自分の好きな
ようにダイアログを表示したり処理するんでしょうね。
どうなるかは貴方次第。
>SaveDialogで上書き確認をやらず、
Optionの方はどうなったのでしょう.最初の質問は
>自分で上書き確認の処理を書くとどうなりますか?
既にレスがありますが,もちろん自分で書いても構いません.
その場合,どうなるかは,
プログラムする本人(処理内容)次第ということになります.
私はいつも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製アプリって謎なエラー表示が多いんだけどってユーザーに
思われたくない場合は、キャッチして処理したほうがよいでしょう(汗)
ツイート | ![]() |