private method Приватный метода в классе Паскаля - как запретить вызов снаружи, в одном файле без создания модуля

Чтобы метод нельзя было вызвать из тела программы есть два варианта:

  1. Перенести класс в отдельный модуль (unit), и тогда private должен не дать вызвать метод
  2. Или использовать вместо обычного private модификатор strict private, тогда добиться того же самого эффекта в рамках одного файла/модуля, например:
    type
      THelloWorld = class
      public
        whatToSay: string;
        // объявляем нестандартный конструктор
        constructor create(whatToSayValue: string);
      strict private
        procedure sayHello;
      end;
    
    procedure THelloWorld.sayHello;
    begin
     writeln(self.whatToSay);
    end;
    
    // Добавляем реализацию собственного конструктора
    constructor THelloWorld.create(whatToSayValue: string);
    begin
     self.whatToSay := whatToSayValue;
    end;
    
    var
      primer: THelloWorld; // переменная типа класса THelloWorld
    begin
      primer := THelloWorld.create('Привет мир!!!');
      primer.sayHello(); // Ошибка! Метод приватный
    end.