reintroduce позволяет объявить метод с тем же именем, что и у предка, но с другими параметрами. Это не имеет ничего общего с ошибками или ошибками !!!
Например, я часто использую его для конструкторов ...
constructor Create (AOwner : TComponent; AParent : TComponent); reintroduce;
Это позволяет мне создавать внутренние классы более чистым способом для сложных элементов управления, таких как панели инструментов или календари. У меня обычно больше параметров, чем это. Иногда почти невозможно или очень грязно создать класс без передачи некоторых параметров.
Для визуальных элементов управления Application.Processmessages может вызываться после Create, что может быть слишком поздно для использования этих параметров.
constructor TClassname.Create (AOwner : TComponent; AParent : TComponent);
begin
inherited Create (AOwner);
Parent := AParent;
..
end;