Si ponés este código en el evento click de un botón y lo ejecutás anda perfectamente, debe haber un leve error en tu código
Código Delphi
[-]
var
fileSource, fileDest: string;
begin
if opendialog1.Execute then fileSource := opendialog1.FileName;
filedest:=savedialog1.FileName;
if savedialog1.Execute then CopyFile(PChar(filesource), PChar(filedest), False);
end;
Saludos