Defining your type as an object gives you the bare bare bare minimum object (i.e. no built-in constructors, destructors, or other methods). Types declared in this manner cannot have published members. Think of this as your nitty gritty object. :x

Defining your type as a class automatically and directly decends from TObject and thus inherits any and all of it's features. This includes default constructors and destructors, class type and instance information, and run-time type information for published members. It basically gives you all the common VCL support you'll need to be productive.

P.S. Sober up, we don't need ya writing any sloppy code...