APPARITION PROGRESSIVE D'UNE FORM

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 - 16 févr. 2005 à 00:36
 Utilisateur anonyme - 27 févr. 2008 à 19:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29533-apparition-progressive-d-une-form

Utilisateur anonyme
27 févr. 2008 à 19:41
merci
pyroflo Messages postés 323 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 17 mai 2005
16 févr. 2005 à 12:59
Pas mal du tout :-)

Je ne connaissais pas GetSystemMetrics() !

Reste à régler le problème du fsStayOnTop et, selon l'utilisation que l'on veut en faire, déplacer la fiche dès le bas de l'écran (et pas le haut de la barre des tâches).
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
16 févr. 2005 à 12:30
J'en ai une... Je prépare le code ;)
kalerzz Messages postés 10 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 18 mai 2006
16 févr. 2005 à 12:28
C'est vrai japee je ne pensais même pas à la fermer je faisais a chq fois un Ctrl+F2 sans même me poser la question...

Je te ni69 pour le Application.ProcessMessages, je l'avais déjà utilisé mais une fois de plus je l'avais zappé :p...
En ce qui concerne le problème de voir la form partout, je ne sais pas du tout cmt m'y prendre car effectivement le changement de style provoque un micro flash pas très esthétique !
Si qqun a des propositions...
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
16 févr. 2005 à 12:07
Bien l'effet ;) j'en avais djà fait un comme ça, mais dans mon prog, la form venait de la droite :)

Il faudrait remplacer le sleep(1000);
par quelque-chose du genre :
for tps := 0 to 10 do
begin
Sleep(100);
Application.ProcessMessages;
end;
Ca éviterait que si une fenêtre passe devant au début du sleep, le message de la form soit masqué par l'image de la fenêtre (même si elle a été déplacée) et qu'on ne puisse le lire que quand la form redescend...

Dans mon prog (form venant de la droite), j'avais un avantage, c'est que je mettait ma form directement fsStayOnTop, ça permettait de la voir tout le temps même si d'autres fenêtres étaient devant, mais dans ton cas, la form arriverait au dessus de la barre des tâches et cela ne serait pas très joli... Il faudrait faire :
[...montée...]
FormStyle := fsStayOnTop;
for tps := 0 to 10 do
begin
sleep(100);
Application.ProcessMessages;
end;
FormStyle := fsNormal;
[...Descente...]
Mais encore une fois, au niveau de l'apparence, ça va pas trop : au moment du changement de style, la form s'efface et se réaffiche, ça fait un flash pas très beau :( ......

Bon sinon, c'est un bon code ;)
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
16 févr. 2005 à 00:36
Oui, l'effet est sympa, et ça peut servir !

L'ajout de l'instruction Close à la fin de la procedure permet d'éviter le Ctrl-Alt-Supp ou le Alt-F4... ou pire encore, pour les distraits ! ;)
Rejoignez-nous