Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Problem mit CornerButton Style (https://www.delphipraxis.net/217253-problem-mit-cornerbutton-style.html)

Geri 30. Mai 2025 08:18

Problem mit CornerButton Style
 
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"


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz