Я ж написал тебе, что происходит:
Цитата
Если ты попытаешься обратиться извне (не из методов класса и его наследников, а из простых процедур/функций) к методам/данным описанным в разделе protected, то ошибка, собственно, и должна быть.
Ты пытаешься обратиться к защищенному конструктору TVehicle.Create из основной программы. Это невозможно: доступ к этому конструктору возможен только из наследников TVehicle. А в твоем случае компилятор, понимая, что защищенный конструктор недоступен, пытается вызвать
дефолтный конструктор TObject.Create, который без параметров (я надеюсь, ты знаешь, что все классы - наследники TObject?). Отсюда и такая ошибка.
P.S. Значит, все-таки Дельфи. Переезжаем...