Beim Zuweisen von Ereignishandlern habe ich festgestellt, dass nur zwischen Methoden auswählen kann, die keinen expliziten Zugriffsmodifikator haben.Ist es sicher, eine private/protected/public-Methode als Event-Handler festzulegen?
die folgende Klasse als Beispiel nehmen:
TMyForm = class(TForm)
MyButton: TButton;
procedure MyButtonClick(Sender: TObject);
private
procedure MyButtonPrivateClick(Sender: TObject);
protected
procedure MyButtonProtectedClick(Sender: TObject);
public
procedure MyButtonPublicClick(Sender: TObject);
end;
In der Dropdown-Liste zeigt die Object Inspector
nur MyButtonClick
:
Aus diesem Grund, ich frage mich, ob es sicher ist, um eine private
/protected
/public
Methode per Code an einen Event-Handler zu setzen oder wenn es aus dieser Praxis einige Probleme geben könnte.
MyButton.OnClick := MyButtonPrivateClick;
//...
Was passiert, wenn Sie es versuchen? – Lloyd
@Lloyd: Es scheint nichts falsch zu sein, es kompiliert ohne Fehler keine Warnungen und es funktioniert, aber ich weiß nicht, ob es einige Rückseitenaspekt geben könnte, die Probleme in bestimmten Bedingungen verursachen würden – ExDev
Die Methode wird veröffentlicht. Deshalb sehen Sie es im Objektinspektor und nicht in anderen. – kobik