Wizz a la msn

Soyez le premier à donner votre avis sur cette source.

Vue 29 298 fois - Téléchargée 1 046 fois

Description

Ce petit bout de code montre comment on peut faire un wizz facon msn messenger. Posté car quand j'ai cherché sur ce site, je n'ai pas trouvé !
tout est améliorable, comme par exemple faire en sorte que la fenêtre finisse par revenir à sa place initiale à la fin du temps imparti.

Utilisez et préférez l'emploi dans vos applis de DesktopLocation et non seulement Location, car pour ceux comme moi qui ont leur barre de tache en haut, (ou à gauche), la position (0,0) est relative à la barre des taches et non à l'écran !!

Source / Exemple :


private void button1_Click(object sender, System.EventArgs e)
		{
			this.button1.Text = "Oh c'est magique, ca bouge !!!";
			DateTime t = DateTime.Now;
			Random r = new Random((int)(t.Ticks));

			while(DateTime.Now.Second<t.Second+4)
			{
				this.DesktopLocation = new Point(this.Location.X+r.Next(-5,6),
					this.Location.Y+r.Next(-5,6));
				this.Refresh();
			}
			this.button1.Text = "Cliques ici !!";
		}

Conclusion :


la principale amélioration à faire est de calculer la position d'origine et de faire en sorte de s'y retrouver à la fin.
Pour les randoms, faire en sorte qu'il y ait "autant" de chaque coté (si on met un random entre -5 et 5, et bien comme 5 ne sort jamais, on a la fenêtre qui s'en va doucement en haut et à droite !).

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

SfyLer
Messages postés
38
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
31 décembre 2006
-
Je propose sa, je trouve que c'est mieu:
public class EFFECT
{
private Form f;
private Timer t;
public EFFECT(Form f)
{
this.f = f;
t = new Timer();
}

public void wizz()
{//simule le wizz de msn
t.Interval = 50;//interval pour le timer
t.Tick += new EventHandler(wizztim);
t.Start();
}

private void wizztim(object sender, EventArgs e)
{
int value = 5;
for (int i = 0; i < 20; i++)
{
f.DesktopLocation = new Point(f.Location.X + value, f.Location.Y + value);
f.Refresh();

f.DesktopLocation = new Point(f.Location.X - value, f.Location.Y - value);
f.Refresh();

f.DesktopLocation = new Point(f.Location.X + value, f.Location.Y - value);
f.Refresh();

f.DesktopLocation = new Point(f.Location.X - value, f.Location.Y + value);
f.Refresh();
}
t.Stop();
t.Dispose();
}
}
abdoulax
Messages postés
875
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
22 juin 2012
-
Pourquoi utiliser un ramdom!! Il faut tous simplement faire bouger la fenêtre à la position +10 -10 sur le 2 coordonnés. Je c'est qu'un exemple a été fait en C dont je me suis moi même inspirer pour le faire en mIRC script. Et le résultat est nikouel !!

Have fun
JonathanBeauvois
Messages postés
5
Date d'inscription
vendredi 4 juillet 2003
Statut
Membre
Dernière intervention
11 janvier 2006
-
Je pense que pour que la fenêtre retourne à sa position d'origine, il faudrait "sauvegarder" (dans une variable de type "Point" par exemple) sa position au tout début de la fonction et de la restaurer à la fin, après avoir fait "wizzer" la fenêtre :D

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.