Sono d'accordo su ciò che dichiaro private, ma su qualcosa dichiarato protected non è vero che è visibile solo all'interno della classe stessa...

Vi faccio un esempio col TButton:
codice:
type
   TMyButton = class(TButton);

   TForm1 = class(TForm)
      procedure FormCreate(Sender: TObject);
   end;

var
  Form1: TForm1;

implementation


procedure TForm1.FormCreate(Sender: TObject);
var
   c        :  TMyButton;
begin
   c        := TMyButton.Create( Self );
end;
Così facendo, anche all'interno della classe TForm1, vedo i metodi protected dell'oggetto TMyButton...

Quindi, riassumendo, ok per i metodi private ( immaginavo non si potesse per questi ), ma esiste un modo per vedere i metodi protected senza dover fare questo giro?