AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Forms animiert ein-/ausblenden
Thema durchsuchen
Ansicht
Themen-Optionen

Forms animiert ein-/ausblenden

Ein Thema von vaultdweller · begonnen am 19. Sep 2007 · letzter Beitrag vom 19. Sep 2007
Antwort Antwort
vaultdweller

Registriert seit: 14. Sep 2007
6 Beiträge
 
#1

Forms animiert ein-/ausblenden

  Alt 19. Sep 2007, 21:43
Hallo,

ich bin gerade auf der Suche nach einer Möglichkeit, wie ich ein Formular sanft ein und ausblenden kann.

Mein bisheriger Ansatz war ein Timerereignis, welches das Alphablending in feinen Schritten erhöht, bis das Fenster vollständig sichtbar ist.

Das ganze erzielt zwar ungefähr die gewünschte Wirkung, jedoch sieht es mehr oder weniger ruckelig aus. Mein Rechner ist nicht gerade der langsamste so mutmaße ich, daß es auf langsameren Kisten nur noch schlechter werden kann.

Ein Tipp in die richtige Richtung wäre super.

Dank im voraus!
  Mit Zitat antworten Zitat
gabneo

Registriert seit: 15. Okt 2006
Ort: Deutsche Toskana :)
93 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Forms animiert ein-/ausblenden

  Alt 19. Sep 2007, 22:06
Hallo,
ich weiß zwar nicht welchen Intervall du eingestellt hast, dennoch tippe ich eher darauf das hier das Problem liegt. Du haßt ja genau nur 255 Schritte zur verfügung. Um deine Form also flüssig einblenden zu lassen müsstest du diese Schritte ziemlich schnell abarbeiten lassen. Je geringer du den Timer also einstellst (die Zeit die bis zur abarbeitung des nächsten schrittes vergeht) desto flüssiger sollte dein Ergebnis sein. Ich glaube flimmerfrei sieht das Menschliche Auge ab 60 bildern pro sekunde, müsstest also mal probieren minimum 60 Alphablending-steps pro sekunde ausführen zu lassen.
Wenn es dennoch ruckelt, dann hast du höchstwahrscheinlich einen Fehler im Code, oder dein Programm sendet nicht alle seine Messages an Windows und überspringt einen Teil der windowmessages. Abhilfe würde dann ein Application.processmessage; bringen.
Wenn du alles korrekt Programiert hast, würde ich eher sagen, das dein Programm nicht oft genug auf den Desktop "gemalt" wird, als das heutzutage noch ein Computer für so eine simple aufgabe zu langsam ist.
Ich hoffe das gab schon mal denkanstösse.
greez
gabneo

PS: Hol dir Vista, da sind ein-/ausblendeffekte teil des systems!
  Mit Zitat antworten Zitat
vaultdweller

Registriert seit: 14. Sep 2007
6 Beiträge
 
#3

Re: Forms animiert ein-/ausblenden

  Alt 19. Sep 2007, 22:21
Hi gabneo,

vielen Dank für Deine schnelle Antwort.

Zum Thema Vista: Hust hust, nein lieber nicht

Ich sehe gerade, daß es tatsächlich an dem Finetuning lag, feinere Schritte erzielten das gewünschte Ziel.

Ich bin nebenbei dann doch in der MSDN Library auf was gestoßen:
AnimateWindow Function

BOOL AnimateWindow(
HWND hwnd,
DWORD dwTime,
DWORD dwFlags
);

Hat den gleichen Effekt und wenn man nur diesen Effekt haben will so tut es auch folgender Aufruf:

Delphi-Quellcode:
// Blendet ein Fenster mit dem Namen formExample innerhalb einer Sekunde ein.
AnimateWindow( formExample.Handle, 1000, AW_BLEND );
Gruß vaultdweller
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Forms animiert ein-/ausblenden

  Alt 19. Sep 2007, 22:22
MSDN-Library durchsuchenAnimateWindow oder Respektive die Jedi Komponente die das fuer dich in die Hand nimmt!

//Roter Kasten wo bist du
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 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