![]() |
Firemonkey Animationen flüssiger ablaufen lassen
Hallo zusammen,
Firemonkey ermöglicht einem das einfache erstellen von Animationen aller Art. Bei den meisten Animationen ist dies auch schön anzusehen. Jedoch ist mir aufgefallen, dass es gerade bei Formen (Rectangles, etc) zu Rucklern kommen kann. Versetzt man sie mit z.B. Position (X oder Y spielt keine Rolle) über AnimateFloat in Bewegung, dann wirkt es teils nicht mehr flüssig. Nach Recherche bin ich auf den Befehlt ![]() Leider bringt dieser nicht die gewünschte Abhilfe. Eventuell hat jemand eine Idee?! |
AW: Firemonkey Animationen flüssiger ablaufen lassen
Probier mal:
Delphi-Quellcode:
Was mir aufgefallen ist, dass das erstmalige ausführen einer Animation nicht so flüssig ist wie ab dem 2. mal.
GlobalUseDirect2D := False; // true by default
{$IFDEF MacOS} GlobalDisableFocusEffect := true; {$IFDEF MacOS} |
AW: Firemonkey Animationen flüssiger ablaufen lassen
Wenn Ihr in dem Zussamhang eine Idee zu dem ähnlichen Problem
-> ![]() habt, wäre eine Info ganz nett... Ich verstehe das so, dass FMX den Formularinhalt in einen Puffer schreibt und dann "bei Gelegenheit" das Ganze in das eigentliche Formular kopiert. Irgendwie ist das Ganze etwas zeitkritisch und läuft u.U. in verschiedenen Threads. Jedenfalls wird nicht jede Neuzeichnung einer Komponente 100%ig auf dem Formular aktualisiert. VERMUTUNG: So könnte ggf. auch eine Animation "optisch ruckeln". Im Puffer werden vielleicht alle Änderungen schrittweise vollzogen, aber auf dem sichtbaren Formular werden diese nicht fortlaufend aktualisiert. Versuche mal, ob ein Timer etwas bringt, in dem Du testweise zyklisch ein Invalidate für Dein Formular durchführst. Wäre mal interessant, ob das hilft. In dem Fall müsste man mal abklären, ob das "Refreshproblem" konzeptionell bedingt oder ein Bug ist. Eine eindeutige Problembeschreibung ist in meinem Fall jedoch schwierig, da hier Controls aus einem Framework heraus aktualisiert werden. |
AW: Firemonkey Animationen flüssiger ablaufen lassen
Ich arbeite hier noch mit XE2. Habe Probleme nach XE3, also FM2 zu migrieren. Bestes Beispiel ist das FireFlow-Sample, das unter XE3 nicht sauber läuft.
Wüsste ich was da falsch läuft würde ich schon längst XE3 benutzen.... |
AW: Firemonkey Animationen flüssiger ablaufen lassen
Zitat:
Eine wirklich saubere Lösung ist dies allerdings auch nicht. Zitat:
Ich habe folgendes getestet:
Code:
Die Animation ist flüssig! Die optischen Ruckler sind verschwunden. Danke für die Idee!
while (rectangle.Position.X > -410) do
begin rectangle.Position.X := rectangle.Position.X - 3; sleep(5); Application.ProcessMessages; end; Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 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