Ich schreibe eine Memo-Komponente, die wie eine altmodische Terminal-Sitzung aussehen muss. Das sollte wirklich einfach sein, aber die Art, wie FireMonkey-Stile funktionieren, macht es unglaublich komplex.Ändern Sie die Schriftart und Hintergrundfarben eines TMemo in FireMonkey
In einer nicht mobilen FireMonkey App kann ich mit der rechten Maustaste auf ein Steuerelement klicken und "Edit Custom Style" auswählen. Diese Option ist in mobilen Apps nicht verfügbar. Hier ist der Grund, den einer der FireMonkey-Entwickler gegeben hat.
Es ist Unterstützung verschiedener Stil auf iOS und Android. Wir können Anwendung auf Android im iOS-Stil nicht ausführen. Aber wenn Sie versuchen, Plattform-Stil zu ändern, werden wir es automatisch auf jeder Zielplattform verwenden. Wenn Sie Standard-Format von FM-Steuerelement ändern möchten, sollten Sie auf das Formular-Stil-Buch und machen Sie Stil in es, oder laden Sie auf Stil Plattform Plattform-Stil und nehmen Sie Änderungen daran.
auch sehr wichtig, wenn Sie Plattform-Stil in der Art Buch laden Sie kann wollen, dass Anwendungsinstanz nicht Stil zwei Kopie der Plattform haben (ein - System in fmx Paket und andere Kopie in Ihrem Stil Buch). Dafür sollte man in TStylebook.UseStyleManager das Flag true setzen. In wird dieser Fallstil in Stylebook den Plattformstil ersetzen.
OK, also ich denke, ich muss einen benutzerdefinierten Stil erstellen. Wie gehe ich vor, um einen benutzerdefinierten Stil zu erstellen, der nur die Schrift- und Hintergrundeigenschaften überschreibt?
Ich denke, ich kann die ApplyStyle-Prozedur etwas wie diese überschreiben.
procedure TMyMemo.ApplyStyle;
var
BackgroundObject: TFmxObject;
begin
inherited;
BackgroundObject := FindStyleResource('content');
if Assigned(BackgroundObject) then
begin
// Change the background color of the background
end;
end;
Woher weiß ich, welchen Typ das Hintergrundobjekt hat und welche Eigenschaft ich ändern muss?
Sicherlich kann das Ändern der Hintergrundfarbe eines Steuerelements nicht so schwierig sein! Fehle ich etwas fundamental mit den FM-Stilen?