MasonWheeler, I pretty much agree with all you said, except for the array property part

I think that Object FPC(the object pascal dialect of FPC) allows you to pass "property variables" as function arguments with the var directive. I hope Delphi would get that too