Hola,
Si lo haces como dices, debes obtener un error, y, el mismo mensaje de error te estará diciendo algo. Es bien referir los mensajes de errores aquí, cuando preguntamos algo, puesto que esto ayuda a obtener una posible solución. En este caso al menos se trata de que el segundo parámetro de la función "CopyFile" ha de ser del tipo "PChar", y tú estás pasando una propiedad del diálogo que es del tipo "TStrings".
Lo siguiente igual te ayuda a hacerte una idea. Inicia un nuevo proyecto en Delphi, sitúa un botón en el formulario, y, en su "onclick", copia este código, que, podrá y aun deberá refinarse lo que se quiera, pero, ya digo, igual puede valer para hacerte una idea:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
target, destiny: PChar;
begin
with TOpenDialog.Create(nil) do
begin
Title := 'Elige el archivo a copiar';
try
if Execute() then begin
target := PChar(FileName);
with TSaveDialog.Create(nil) do
begin
FileName := target;
Title := 'Elige dónde copiar el archivo';
try
if Execute() then begin
destiny := PChar(FileName);
if CopyFile(target, destiny, false) then
ShowMessage('El archivo se copió correctamente')
else
ShowMessage('Ops... no pudo copiarse el archivo');
end;
finally
Free();
end;
end;
end;
finally
Free();
end;
end;
end;