Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Animate Window wirkungslos?? (https://www.delphipraxis.net/77072-animate-window-wirkungslos.html)

Ben-G 14. Sep 2006 11:26


Animate Window wirkungslos??
 
Hi! Ist wohl eine Anfängerfrage, habe aber keine Erfahrung mit AnimateWindow.
Habe gerade versucht es zu verwenden und hab erstmal den Code aus dem SwissDelphiCenter übernommen,
allerdings passiert bei mir rein gar nichts. Statt der erwarteten Animation, poppt das Fenster einfach normal auf, was habe ich falsch gemacht?

Code:
Form2.BringToFront;
AnimateWindow(Form2.Handle, 3000, AW_BLEND);
Form2.Show;

Ben-G 14. Sep 2006 13:56

Re: Animate Window wirkungslos??
 
Hat denn keiner eine Ahnung wie das DIng funktioniert? :?

shmia 14. Sep 2006 14:03

Re: Animate Window wirkungslos??
 
Such doch einfach mal in der MSDN: MSDN-Library durchsuchenAnimateWindow
Es gibt einige Dinge, die verhindern, das AnimateWindow arbeiten kann.
Vorallem solltest du den Returncode auslesen und mit GetLastError nachfragen ,was schiefgegangen ist.
z.B. so:
Delphi-Quellcode:
if not AnimateWindow(Form2.Handle, 3000, AW_BLEND) then
   RaiseLastWin32Error; // GetLastError abfragen und Exception werfen

Helmi 14. Sep 2006 14:28

Re: Animate Window wirkungslos??
 
Hallo,

probiers doch mal so:
Delphi-Quellcode:
AnimateWindow(Form2.Handle, 3000, AW_BLEND);
Form2.BringToFront;
Form2.Show;

Ben-G 14. Sep 2006 22:42

Re: Animate Window wirkungslos??
 
nö, geht leider nich, aber der Code Schnipsel war wie gesagt vom Delphicenter übernommen.

Luckie 14. Sep 2006 23:35

Re: Animate Window wirkungslos??
 
Wo rufst du denn den Code auf? In FormCeate?

So geht es:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  AnimateWindow(Form1.Handle, 3000, AW_BLend);
end;
Im OnShow aufrufen.

Ben-G 15. Sep 2006 00:16

Re: Animate Window wirkungslos??
 
Danke schonmal, also:
Wenn ich das Programm starte funktioniert die Blende beim ersten mal, danach nicht mehr, wieso?

Cyberbob 15. Sep 2006 03:01

Re: Animate Window wirkungslos??
 
ICh habs so gemacht wie Luckie es beschrieben hat.
AnimateWindow(Form1.Handle, 3000, AW_BLend) in das OnShow ereignis und das Form1.BringToFront und Form1.Show ganz weggelassen, funktioniert Prima!

Ben-G 15. Sep 2006 08:42

Re: Animate Window wirkungslos??
 
Ja, bei mir funktionierts aber nur ein einziges mal :/

Ben-G 15. Sep 2006 10:32

Re: Animate Window wirkungslos??
 
Abgesehen davon wird das Fenster nicht komplett aufgebaut, unten fehlt ein Abschnitt von schätzungsweise 150 pixeln.

Ben-G 15. Sep 2006 13:28

Re: Animate Window wirkungslos??
 
Hilfe^^

Cyberbob 15. Sep 2006 15:29

Re: Animate Window wirkungslos??
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hast du es mal mit einem neuen Programm versucht? Einfach mal AnimateWindow(Form1.Handle, 3000, AW_BLend) in ein neues Programm im OnShow Erreignis und schaun, was da passiert.

Probier mal mein Beispiel, das geht schneller...

Mackhack 15. Sep 2006 16:02

Re: Animate Window wirkungslos??
 
Zitat:

Zitat von Ben-G
Abgesehen davon wird das Fenster nicht komplett aufgebaut, unten fehlt ein Abschnitt von schätzungsweise 150 pixeln.

Soweit ich weis werden die Controls auf dem Fenster durch die Animate-Function etwas durcheinandergebracht. Du muesstst dann eben mit Control.Count eben druchhuschen im OnPaint/OnRePaint.

//Edit: Sorry, hab meine Augen grad erst aufgemacht aus dem Bett. Natuerlich im OnShow folgendes aufrufen:

Delphi-Quellcode:
...
SetFocus;
for count := 0 to Pred(ControlCount) do
  if Controls[Count].Visible then
    Controls[Count].Repaint;

Daniel G 15. Sep 2006 16:05

Re: Animate Window wirkungslos??
 
Und AnimateWindow verträgt sich auch schlecht mit einem eingebautem Manifest. Zumindest bei meiner nonVCL - App war das so....

Ben-G 16. Sep 2006 10:24

Re: Animate Window wirkungslos??
 
Ja scheint tatsächlich an der komplexität der formulare zu liegen, bei nur einem gehts ohne Probleme...
Bekomm esbei mir aber einfach nich gebacken...


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