Couldn't you just use objects?

Delphi 2005 supports traditional records extended with methods and properties