Hallo zusammen
Ich habe einen TCornerButton um ein Textelement "TextTop" erweitert indem ich im StyleDesigner ein Textelement hinzugefühgt habe.
Im Delphi Designer:
1 Form1.StyleBook auf meine StyleBook StyleBook1 gesetzt
2 CornerButton1 eingefügt
3 CornerButton1.StyleLookup auf "StyleDivButton" gesetzt
4 CoernBUtton1.ApplyStyleLookup-Event gesetzt
Im Styledesigner:
5 einen neuen Stil "StyleDivButton" vom Typ "TCornerButton" definiert
6 In StyleDivButton ein weiteres Textelement mit dem Namen "TextTop" eingefügt
7 TextTop.Name auf den Wert "TextTop"
8 TextTop.Stylename ebenso auf den Wert "TextTop" gesetzt
Delphi-Quellcode:
procedure TForm1.CornerButton1ApplyStyleLookup(Sender: TObject);
var Txt: TText;
begin
Txt := CornerButton1.FindStyleResource('text') as TText;
if Assigned(Txt) then
Txt.Text := CornerButton1.Text;
Txt := CornerButton1.FindStyleResource('TextTop') as TText;
if Assigned(Txt) then
Txt.Text := CornerButton1.Text;
End;
procedure TForm1.Button4Click(Sender: TObject);
var
StyleObj: TFmxObject;
Text1Style: TText;
begin
CornerButton1.ApplyStyleLookup;
StyleObj := CornerButton1.FindStyleResource(''); // Holt das StyleRoot selbst
if Assigned(StyleObj) then
begin
DumpChildren(StyleObj) ;
Text1Style := StyleObj.FindStyleResource('StyleDivButton') as TText;
if Assigned(Text1Style) then
Text1Style.Text := 'W'
else
ShowMessage('StyleDivButton nicht gefunden!');
end
else
ShowMessage('Style-Objekt nicht gefunden');
end;
Txt liefert den Wert Nil
TxtTop liefert den Wert Nil
Wenn ich Delphi Objektinspektor oder im Programmcode die Eigenschaft Text z.B. auf den Wert CornerButton1.text:= "124"; setze, dann passiert in der Anzeige nichts.
Ich vemute, das Problem liegt an dem Style den ich definiert habe. Habe schon allerlei probiert. No succuess.
Kann mir jemand von euch vielleicht sagen wie man richtig vorgehen muss?
Beste Grüße
Geri
PS: Ich nutze "Delphi Community, Version 12"