Use TPath.GetDocumentsPath (and use TPath.Combine instead of concatenation to remove hard-coded / ):
uses Systen,IOUtils; ini := TIniFile.Create(TPath.Combine(TPath.GetDocumentsPath, 'user.dat'));
Using TPath.GetDocumentsPath transparently works on all supported platforms (Win32, Win64, OSX, iOS and Android), and using TPath.Combine will be automatically added, so you do not need to manually concatenate them.
If you prefer to do it yourself, though:
var IniName: string; begin IniName := TPath.GetDocumentsPath + TPath.DirectorySeparatorChar + 'user.dat'; Ini := TIniFile.Create(IniName); try // Rest of code finally Ini.Free; end; end;
source share