Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ANIMER FENETRE


Information sur la source

Catégorie :API Classé sous : animatewindow, blend Niveau : Débutant Date de création : 15/04/2007 Date de mise à jour : 24/04/2007 20:45:12 Vu / téléchargé: 4 361 / 235 261

Note :
Aucune note

Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note


Description

Programme d'apprentissage d'une fonction API Windows qu'est AnimateWindow().
C'est l'amélioration de la source postée par riri15 en 2006 mais qu'il n'a pas amélioré à cause des critiques des membres.
L'idée d'un autre membre a été aussi retenue dans ce code.

Ne soyez pas sévère!!!SVP!
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

24 avril 2007 12:55:33 :
Apport de tous les remarques des membres! Merci à eux!
24 avril 2007 12:56:12 :
Apport de tous les remarques des membres! Merci à eux!
24 avril 2007 20:45:13 :
Suite aux remarques de Japee

Commentaires et avis

signaler à un administrateur
Commentaire de Also know as le 15/04/2007 13:53:58

Très sympa pour faire quelques petits effet dans nos programmes de temps en temps ca fait pas de mal !
Bon par contre pour ma part le bouton "LES DEUX" ne fonctionne pas correctement, il me fait uniquement la première animation demandé dans la source, autrement dit une apparition centrale (AnimateWindow(Handle,2000,AW_CENTER);).

Et le bouton "BLEND" est très intéressant mais pour une raison que je ne vois pas, les boutons pour faire les apparitions verticales et horizontale ne s'affiche plus.
Je suis obligé de glisser le curseur pour les faire apparaitre à nouveau.
J'ai était de tous les rafraichir :

procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Hide;
AnimateWindow(Handle,2000,AW_BLEND);
form1.Show;
button1.Refresh;
button2.Refresh;
button3.Refresh;
button4.Refresh;
button5.Refresh;
button6.Refresh;
button7.Refresh;
end;

Ce que je trouve un peu long, donc il doit y avoir un autre moyen pour cela je pense.

En tout cas moi je garde de côté :)

@+

signaler à un administrateur
Commentaire de Debiars le 15/04/2007 15:41:46

Also know as : Pour accéder à une série de composants identiques, je procède comme ceci :

Une petite fonction :

function TForm1.Bouton(no : byte) : TButton;
begin
  Result := FindComponent('Button'+ IntToStr(no)) as TButton;
end;

qui permet de faire (dans le cas présent) :

for i := 1 to 7 do Bouton(i).Refresh;

au lieu de :

button1.Refresh;
button2.Refresh;
button3.Refresh;
button4.Refresh;
button5.Refresh;
button6.Refresh;
button7.Refresh;

signaler à un administrateur
Commentaire de Also know as le 15/04/2007 15:46:38

C'est pas bête d'utiliser une petite boucle for, mais le petit truc final qui serait de compter le nombre total de boutons ce qui permettrais de ne pas modifier la fonction et pour autant pouvoir rajouter des boutons sans remodifier la fonction par derrière !

signaler à un administrateur
Commentaire de Debiars le 15/04/2007 16:20:12

ALSO OK.

On peut également simplifier comme ceci :

Pour tous les boutons :
- On renseigne la propriété Tag avec le numéro du bouton
- On met "Button1Click" dans l'évenement OnClick.

On ne garde que la procédure Button1Click, comme ceci :

procedure TForm1.Button1Click(Sender: TObject);
var  i, tag : byte;
begin
  form1.Hide;
  tag := (Sender as TButton).Tag;
  case tag of
    1 : AnimateWindow(Handle,2000,AW_CENTER);
    2 : AnimateWindow(Handle,2000,AW_BLEND);
    3 : begin
          AnimateWindow(Handle,2000,AW_CENTER);
          AnimateWindow(Handle,4000,AW_BLEND);
        end;
    4 : AnimateWindow(Handle,2000,AW_VER_POSITIVE);
    5 : AnimateWindow(Handle,2000,AW_VER_NEGATIVE);
    6 : AnimateWindow(Handle,2000,AW_HOR_POSITIVE);
    7 : AnimateWindow(Handle,2000,AW_HOR_NEGATIVE);
  end;
  form1.Show;
  for i := 1 to 7 do Bouton(i).Refresh;
end;

function TForm1.Bouton(no : byte) : TButton;
begin
  Result := FindComponent('button'+ IntToStr(no)) as TButton;
end;

signaler à un administrateur
Commentaire de randriano le 16/04/2007 12:46:42

Pour les Refresh, je crois que j'ai posté le mauvais zip qui inclut ça.
Je vais tenir compte des remarques que vous apportez pour la mise à jour.
Merci!

signaler à un administrateur
Commentaire de cincap le 23/04/2007 08:38:41

Bonjour,

Très bien pour la source, même exemple en 2004 du membre DevelOpeR13 sur ce lien :

http://www.delphifr.com/code.aspx?ID=20424

Même remarque que le membre Also know as, le bouton "Les deux" ne fait que la 1ère animation même avec l'expression "or"

AnimateWindow(Handle,2000, AW_CENTER or AW_BLEND);

@+,

Cincap

signaler à un administrateur
Commentaire de randriano le 23/04/2007 18:38:08

Bon, merci de vos conseils!
Je promets une modification bientôt, je dois d'abord m'arranger avec mon emploi du temps!

Je fais faire meilleur que DevelOpeR13!!
J'espère

signaler à un administrateur
Commentaire de japee le 24/04/2007 17:25:14 administrateur CS

Bon, encore une fois, ce code est un copier-coller d'un travail effectué par les autres, ici DevelOpeR13, et que tu t'attribues sans aucune honte.

Par exemple, ton "unit11.pas" est exactement SON "unit1.pas" que tu as renommée, voir ici pour ceux qui ne comprendraient pas ce que je veux dire :
http://www.delphifr.com/code.aspx?ID=20424
On peut dire que tu as du culot.

Ton comportement est inadmissible :
- Arrivée sur CodeS-SourceS le :  13/04/2007,
- aucune participation sur le forum, mais déjà 3 codes postés,
- 2 de ces codes sont des pillages de travail effectué par d'autres (voir http://www.delphifr.com/codes/ZOOMER-IMAGE-SIMPLE-EFFET-TUNNEL_

42430.aspx), le 3ème ne fonctionne pas...

Sauf malentendu, tu n'as rien compris à l'esprit qui anime cette communauté de développeurs.

Je donnerai suite en fonction de tes explications...

japee - admin cs

signaler à un administrateur
Commentaire de randriano le 24/04/2007 19:58:23

Bonjour!

Excusez moi! Japee! Bon, je vais enlever ce truc de ce code mais je voulais  seulement partager ces codes à tout le monde mais j'ai tort!

Je vais enlever le code developer13 et zoomer désolé!!!!!

signaler à un administrateur
Commentaire de riri15 le 25/04/2007 14:16:48

Je remercie RANDRIANO pour l'amélioration qu'il a fait sur mon code!
Tu as tout mon accord!
Japee, ne soyez pas sévère! Je crois qu'il a tout pigé now!

signaler à un administrateur
Commentaire de matrix1 le 06/06/2007 12:56:26

ne soyez pas si dure les gas, t'es encore un newbie en delphi, c normale, fais des recherche et améliore vos compétences, un tu fera quel que chose d'intéressant et tu vas les impressionner mais il faut d'abord aimer ce que tu fais ;), tien! essay de faire des(draw)s sure ton propre form ou just des boucles
//**************************
if Mypanel.Left=380 then
while (Mypanel.Left<735) do
begin
Mypanel.Left:=Mypanel.Left+5  ;
end else
if Mypanel.Left>=735 then
while (Mypanel.Left>380) do
begin
Mypanel.Left:=Mypanel.Left-5  ;
end;
//******************là t'es pas oubligé de refresh ;)***********
tu fera des mervielles il faux just de  l'imagination et du travail. bon courage
et je m'excuse pur mon français, i'm not francophone

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.