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/)
-   -   FloatAnimation zerstört Shadow (https://www.delphipraxis.net/203536-floatanimation-zerstoert-shadow.html)

himitsu 27. Feb 2020 04:25


FloatAnimation zerstört Shadow
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hiiiho,

ich hab mir ein kleines Menü gebastelt, welches via Animation eingeblendet wird.

Anfangs hatte ich es über die Position geregelt, und da gab es keine Probleme, aber aus optioschen Gründen wollte ich es nun in ein Aufzoomen ändern,
also Scale von 0 auf 1 animiert. Auch mit Beginn ab 0.1 keine Änderung, anstatt von 0.

Hier ein kleines Beispiel: Links voher und Rechts nach der Animation.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  FloatAnimation1.Start;
end;
Code:
object Button1: TButton
  Position.X = 216.000000000000000000
  Position.Y = 136.000000000000000000
  TabOrder = 15
  Text = 'Button1'
  OnClick = Button1Click
  object FloatAnimation1: TFloatAnimation
    Duration = 0.500000000000000000
    PropertyName = 'Scale.Y'
    StartValue = 0.000000000000000000
    StopValue = 1.000000000000000000
  end
  object ShadowEffect1: TShadowEffect
    Distance = 8.000000000000000000
    Direction = 45.000000000000000000
    Softness = 0.500000000000000000
    Opacity = 0.500000000000000000
    ShadowColor = claBlack
  end
end

Rollo62 27. Feb 2020 07:06

AW: FloatAnimation zerstört Shadow
 
Passiert das auch wenn Du den Scale von aussen änderst, ohne FloatAnimation ?

himitsu 27. Feb 2020 09:11

AW: FloatAnimation zerstört Shadow
 
Hab's mit 'ner SpinBox ausprobiert.

* zwischen 0.1 und 1 hin und her ohne Probleme
* sobald auf 0, dann meistens Probleme
** 0 direkt auf 1 = ein Farbverlauf, nur etwas zu hell, und mit einem 1-Pixelrand
** 0 auf 0.1 und dann woanders hin = futsch ... und auch kurz der Rahmen
Scheint also immer kaputt zu gehn, wenn die Komponente komplett ausgeblendet war,
und sobald sie sichbar wird, ist beim ersten mal ein Rahmen drumrum, der beim nächsten Ändern verschwindet.

Rollo62 27. Feb 2020 11:07

AW: FloatAnimation zerstört Shadow
 
Scheint ja dann ein Bug zu sein.
Womöglich hilft es nach dem Setting irgendwas neu zu konfigurieren, und Repaint, oder dergleichen als Workaround.
Oder einfach nur von 0.1 ... 1.0 verstellen ?

himitsu 27. Feb 2020 11:15

AW: FloatAnimation zerstört Shadow
 
Nja, es scheint von "unsichtbar" zu klein-sichtbar zu knallen.

Mein Menü ist unsichtbar und ich blende es dann animiert ein.
Jedenfalls ist es dort egal wo ich beginne, es sieht danach immer scheiße aus.

Repaint oder sowas hatte ich schon versucht.
Sobald es einmal Scheiße aussieht, bleibt es so, egal was passiert.

Ich veruch heut abend mal im OnFinish den Shadow kurz aus und wieder einzublenden. (Visible=True>False>True)

DukeM 7. Apr 2020 11:53

AW: FloatAnimation zerstört Shadow
 
Hast Du dafür schon eine Lösung?
Der Schatten wird ja nur einmal "gemalt" und nicht ständig. Das ergibt oftmals unschöne Effekte. Vorallem wenn Child Objekte über den Schatten laufen und er dann an diesen Stellen "übermalt" ist.
Ein Invalidate auf Alle möglichen Komponenten (Parent) hilft manchmal.

himitsu 7. Apr 2020 19:11

AW: FloatAnimation zerstört Shadow
 
Nee, keine Lösung. Auch mit Refreshs an verschiedensten Stellen war nichts zu machen.

Wie gesagt, hab ich das einblenden nun anders gelöst, also durch reinschieben (aus dem nichts), anstatt diesem eigentlich "schöneren" aufzommem/hochklappen.


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

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