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/)
-   -   Delphi Alphablending Probleme (https://www.delphipraxis.net/70130-alphablending-probleme.html)

Hoshy 25. Mai 2006 15:24


Alphablending Probleme
 
Hallo,

ich kämpfe mit diversen Problemen beim Alphablending von Forms. Folgendes habe ich bisher probiert:

(1) AnimateWindow(Handle,500,AW_BLEND xor AW_ACTIVATE) im OnShow Event der Form.
Geht prinzipiell, aber erstens wird die Form erst eingeblendet und dann die Position der Form auf dem Schirm umgesetzt, weil z.B. Form.Position = poScreenCenter ist...sieht natürlich sehr doof aus. Zweitens "verschwinden" Komponenten, die auf der Form liegen, z. B. diverse Panel.

(2) Setzen des AlphaBlendValue innerhalb einer Schleife im OnActivate Event. Funktioniert prinzipiell gut, aber auf unterschiedlichen Rechnern läuft die Schleife unterschiedlich schnell ab, d. h. auf dem ersten Rechner blendet die Form in der gewünschten Geschwindigkeit ein, auf einem zweiten Rechner mit besserer CPU macht es "Plopp" und die Form ist sofort da...

(3) Mit "SetLayeredWindowAttributes" habe ich's gar nicht hinbekommen (warum auch immer).

Kann mir mal jemand auf die Spünge helfen :mrgreen:

Khabarakh 25. Mai 2006 15:29

Re: Alphablending Probleme
 
Zitat:

Zitat von Hoshy
(2) Setzen des AlphaBlendValue innerhalb einer Schleife im OnActivate Event. Funktioniert prinzipiell gut, aber auf unterschiedlichen Rechnern läuft die Schleife unterschiedlich schnell ab, d. h. auf dem ersten Rechner blendet die Form in der gewünschten Geschwindigkeit ein, auf einem zweiten Rechner mit besserer CPU macht es "Plopp" und die Form ist sofort da...

Wie wärs mit einem Timer ;) ? Ansonsten den neuen Alphawert einfach durch die Differenzzeit zum Programmstart errechnen.
Delphi-Quellcode:
delta := GetTickCount - StartTicks;
if delta < 3000 {ms} then
  alpha := delta / 3000 * 255;
...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 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