Tu principal error es confundir un String con un TStrings. El segundo básicamente es una lista de elementos String.
"constant 0 converter to nil" no es un error, es una advertencia de que el valor constante cero se va a convertir en un puntero nil (pongo cero en lugar de nil por costumbre y vicio del lenguaje C)
Fíjate en este sencillo código que funciona perfectamente en delphi 7:
Código Delphi
[-]
begin
OpenDialog1.Options := [ofAllowMultiSelect];
if OpenDialog1.Execute then
XCopy(Handle, OpenDialog1.Files, 'D:\prueba');
end;
Saludos.