Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

FMX: Wann wird ein Style geladen? / Tests für FMX-Workarounds

  Alt 14. Nov 2018, 09:07
Ich habe mit FMX noch keine Erfahrung. Ich möchte ein Memo-Feld mit der gleichen Hintergrundfarbe wie das Formular darstellen.

Der einzige Weg den ich gefunden habe ist über das OnApplyStyleLookup -Event:
Delphi-Quellcode:
procedure TTextBox.MemoApplyStyleLookup(Sender: TObject);
var
   styleObj: TActiveStyleObject;
begin
   styleObj := (Sender as TControl).FindStyleResource('background') as TActiveStyleObject;
   if not Assigned(memoStyleSource) then
      memoStyleSource := styleObj.Source;

   if isReadOnly then
      styleObj.Source := nil
   else
      styleObj.Source := memoStyleSource;
end;
Da mir niemand garantiert dass Embarcadero z.B. "background" eines Tages nicht mal umbenennt wollte ich einen Test dafür schreiben. Wenn ich in einem DUnit-Testprogramm ein FMX.Memo.TMemo erstelle liefert FindStyleResource(..) nach dem Erstellen des Memos immer nil . Ich kann das Ding auch repainten wie ich will, das OnApplyStyleLookup wird nie aufgerufen.

Wie kann ich das richtig testen?

Geändert von Der schöne Günther (14. Nov 2018 um 09:08 Uhr) Grund: Titel angepasst
  Mit Zitat antworten Zitat