Nie lubię pisać w takich sprawach, może dlatego, że mam wrażenie, że to głupi problem, ale mimo to nie jestem w stanie znaleźć sposobu na to:
Program musi skopiować plik settings/xxx.set do folderu Danych aplikacji. Wpisanie jednak %appdata% skutkuje utworzeniem folderu o takiej nazwie...
Kopiowanie plików wykonywałem poprzez
P.Wnd := Handle;
P.wFunc := FO_COPY;
P.pFrom := 'settings/xxx.set';
P.pTo := '%appdata%/Program/xxx.set';
SHFileOperation(P);
Oczywiście trochę szperałem i uzyskanie ścieżki folderu %appdata% w prosty sposób można za pomocą tej funkcji:
GetEnvironmentVariable('appdata'), ale wstawienie tego do P.pTo
P.pTo := GetEnvironmentVariable('appdata')+'/Program/xxx.set';
skutkowało komunikatem
[Pascal Error] E2010 Incompatible types: 'string' and 'PAnsiChar'