Ich mach das immer so.
- Den Eventnamen (TTimerDelayed), die private Variable (FTimerDelayed), die private Methode (DoTimerDelayed) und die Property (OnTimerDelayed) immer gleich halten (nur T, F, Do und On davor). So sind die Zugehörigkeiten auch bei größeren Klassen und Kompoenten besser im Überblick zu behalten
- Der Event übergibt auch immer den Sender. Gerade bei Kompoenten macht das viel sinn. Und irgendwann wird man es auch so brauchen. Außerdem ist man dann vom Design konform zu anderen Komponenten.
- Es reicht, wenn man self erst in der Privaten Methode hinzufügt.
Weißt du wahrscheinlich alles schon, aber ich finde so ist die Lesbarkeit und es ist verständlich für die, die sich neu damit beschäftigen.
Delphi-Quellcode:
unit TTextBoxDelay;
interface
uses
System.SysUtils, System.Classes, FMX.Types, FMX.Controls, FMX.Objects, FMX.Edit;
type
TTimerDelayed =
procedure(Sender: TObject;
const aSearchText:
string)
of object;
TTextExtension =
class(TEdit)
private
FTimerDelayed: TTimerDelayed ;
procedure DoTimerDelayed(aSearchText:
string);
public
constructor Create(AOwner: TComponent);
override;
published
property OnTimerDelayed: TTimerDelayed
read FTimerDelayed
write FTimerDelayed;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('
Standard', [TTextExtension]);
end;
constructor TTextExtension.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;
procedure TTextExtension.DoTimerDelayed(aSearchText:
string);
begin
if Assigned(FTimerDelayed)
then begin
FTimerDelayed(self, aSearchText);
end;
end;
end.