Ich würde die Prozedur namen ganz rausnehmen und stattdessen Konstanten verwenden. Außerdem braucht man die Variable MsgDlg1 nicht unbedingt:
Delphi-Quellcode:
const
dat_orig = 'update.exe';
dat_copy = 'bak\update.exe';
exe_name = 'update';
version = '1.0.0';
//[..]
procedure start;
begin
if (MessageDlg('Backup Anlegen?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) and (not DirectoryExists('bak')) then mkdir('bak');
upd;
end;
Mfg