Einzelnen Beitrag anzeigen

Geri

Registriert seit: 23. Nov 2004
Ort: Feldkirch
48 Beiträge
 
Delphi 2005 Personal
 
#1

Problem mit CornerButton Style

  Alt 30. Mai 2025, 08:18
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"
Gerhard

Geändert von Geri (30. Mai 2025 um 08:32 Uhr) Grund: Erweiterung benutzte Delphi-Version
  Mit Zitat antworten Zitat