Wenn du mindestens eine Instanz von
TControl
haben musst, warum dann
Sender : TObject
?
So sparst du dir doch das Casten und ersparst dir potentielle Programmier/Laufzeitfehler, und dokumentiert ist das dann auch (ich muss eine
TControl
-Instanz haben)
Delphi-Quellcode:
function ClientRangeRect(Sender: TControl): TRect;
var
O: TPoint;
begin
// Sender = Client, Parent = ScrollBox, Result in Client-Koordinaten;
O := Sender.ClientToParent( Point(0, 0), Sender.Parent );
Result := Sender.Parent.ClientRect;
Result.Inflate( O.X, O.Y, -O.X, -O.Y );
end;
Eine Umbenennung von
Sender
in
AControl
würde sich dort auch noch besser machen (Lesbarkeit)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)