Muss ich da wirklich den ButtonStyleHook kopieren und für mich anpassen und wie kriege ich diesen dann in meine Komponente? Oder gibt es da eine einfachere objektbasierende Methode ohne Code zu kopieren?
Das war aber doch zu erwarten. Der Style übernimmt ja das Zeichnen anstatt der Windows-Standard-Methode. Insofern ist auch zu vermuten, dass er die erweiterten BS_xxx Werte nicht kennt bzw. nicht auswertet.
Im konkreten Fall läuft es darauf hinaus eine neue Klasse von TButtonStyleHook zu deklarieren und dort das DrawButton zu überschreiben. Den Code kannst du erstmal von der originalen Klasse übernehmen und dann am Anfang das LTextFlags entsprechend anzupassen.
Damit der Stylehook auch für deinen TrfButton funktioniert, musst du analog zu TButton einen class constructor und destructor anlegen, in dem der neue Stylehook registriert bzw. de-registriert wird.
Nur so als Idee: Ich würde statt einem TextAlign zwei separate Properties für HAlign und VAlign machen. Das fände ich übersichtlicher als aus neun Möglichkeiten die passende auswählen zu müssen.