But a "WriteLn(SL, ActualPath)" would show you that everything is correct. You must know that the debugger gdb has problems understanding the Pascal classes and their properties.
As for StringList.Strings[index] and StringList.Names[index]: When you "Add" a string to a StringList like you do in line 2 then you can access the added string as StringList.Strings[index] where index, for example, is the number returned by "Add". Since Strings[] is the "default" property of TStringList, you can omit it and write simply like an array: StringList[index].
If you "Add" a string of the kind "Name=Value" then you can make TStringList split that into its Name and Value parts: StringList.Names[index] returns the part of the string before the '=' and StringList.Values[name] returns the part after the '='. There is also a TStringList.ValueFromIndex[index] - its function is clear from its name.