Man kann prinzipiell Ereignishandler aus Units nehmen die nicht zum Formular gehören, nur ist das recht unübersichtlich auf Dauer. Zudem müssen diese dann auch "procedure of object", also eben Methoden sein, und somit in eine Klasse eingebettet werden. Wenn man das aber schon tun muss, wäre es die sauberere Lösung die Eventhandler in der Formular-
Unit zu belassen, und in diesen dann als Einzeiler die ausgelagerten Methoden einer Helferklasse aus einer anderen
Unit aufrufen zu lassen. Um diese Helferklasse nicht instanziieren zu müssen bieten sich da statische Methoden an ("class procedure/function").
Delphi-Quellcode:
// Unit1
TMyForm = class(TForm)
procedure OnMouseClick(Sender: TObject);
private
public
end;
implementation
uses
Unit2;
procedure TMyForm.OnMouseClick(Sender: TObject);
begin
{Unit2.}TMyFormHelper.OnMouseClick(Sender);
end;
//-------------------
// Unit2
TMyFormHelper = class
private
public
class procedure OnMouseClick(Sender: TObject);
end;
implementation
class procedure TMyFormHelper.OnMouseClick(Sender: TObject);
begin
// was beim Klick passiert
end;
So die Richtung.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)