Natürlich muss sie Public oder Published sein, schliesslich woll ihr sie doch von ausserhalb der Klasse zuweisen - und dort sind nunmal nur öffentliche und veröffentlichte Methoden sichtbar. Ansonsten könnt ihr die Methode auch Private oder Protected deklarieren, dann müsst ihr sie nur halt innerhalb der Klasse zuweisen.
Nehmt doch eine statische Methode, dann könnt ihr euch das Instanz erstellen auch sparen...
Delphi-Quellcode:
Type
TStaticHelper = Class
Public
Class Procedure MyOnTimer(Sender: TObject);
End;
...
Procedure TStaticHelper.MyOnTimer(Sender: TObject);
Begin
ShowMessage('Schon da');
End;
Begin
Timer.OnTimer := TStaticHelper.MyOnTimer;
End.
Und vor allem spart ihr euch dies rumgematsche und gefake mit den "ich mache mir eine Procedure und tarne sie als Methode".
/EDIT: *Argh* Da nölt man rum und macht es selber nicht mal richtig...