Yes, it's a solution, but not very compatible with Win32, since objects are still created only in heap memory, not in the stack like records. Using objects instead of records would require adding lots of {$IFDEF Win32} and {$IFDEF CLR}, and one should avoid that to keep the code readable.