![]() |
Languages »
C# »
General
Beginner
License: The Code Project Open License (CPOL)
Desktop SheepBy Muammar©Animated sheep for your desktop |
C#, Windows, .NET, Visual Studio, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
I really don't know what to say about this article, but I'd like to stress on "It only took me one hour to code this application so be nice and don’t beat me so hard with your comments".
Well, I just read a nice article this morning by Igor Tolmachev called Falling Snow on Your Desktop! here on the CP and said Merry X-Mas to everyone, but I thought there are good muslems here in the forum who would like to hear Happy Eid because it's about time too they have their sheep slaughtered!
I'm sorry, but I think there's nothing to explain about such an easy piece of application,
but here's what I would call the recipé.
Image objects are created for the three faces of the good sheep. Sheep1 = Image.FromFile("Sheeps\weird_sheep1.gif");
Sheep2 = Image.FromFile("Sheeps\weird_sheep2.gif");
Sheep3 = Image.FromFile("Sheeps\weird_sheep3.gif");
The form which has the sheep is set to transparent using the transparency key property, form borders are removed, and a picture box control is added and docked to the parent container form.
The timers are started when the form is loaded with the interactivity of adjusting the sheep speed, this is done by using a variable sheepSpeed which is modified during run-time using the notify icon's context menu.
//By Muammar Yacoob
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Sheep
{
public partial class Form1 : Form
{
int flipper, screenW, screenH; //variable I'll be using later
int sheepX, sheepSpeed;
Image Sheep1, Sheep2, Sheep3; //to set the location and speed
public Form1() //image files are attached here
//of the form (the sheep)
{
InitializeComponent();
Sheep1 = Image.FromFile(@"Sheeps\weird_sheep1.gif");
Sheep2 = Image.FromFile(@"Sheeps\weird_sheep2.gif");
Sheep3 = Image.FromFile(@"Sheeps\weird_sheep3.gif");
flipper = 1;
screenW
= System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width;
screenH
= System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height;
sheepX = screenW;
sheepSpeed = 2;
}
private void Form1_Load(object sender, EventArgs e)
{
//setting the initial location for the form
this.Location = new Point(screenW, screenH - this.Height);
//initializing the form with sheep face1
BoxSheep.Image = Sheep1;
tmrSheeper.Start(); //starts changing the image
tmrMoveit.Start(); //starts moving the form
}
private void tmrSheeper_Tick(object sender, EventArgs e)
{
switch (flipper)
{
case 1:
BoxSheep.Image = Sheep1;
flipper++;
break;
case 2:
BoxSheep.Image = Sheep2;
flipper++;
break;
case 3:
BoxSheep.Image = Sheep3;
flipper = 1; //back to face1
break;
}
}
private void tmrMoveit_Tick(object sender, EventArgs e)
{ //############ We add this line to get the sheep ###########//
//############ on the taskbar after modifying it ###########//
screenH = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height;
//##########################################################//
if (sheepX >= this.Width * -1) //end of sheep tail
{
this.Location = new Point(sheepX, (screenH - this.Height)-22);
sheepX -= sheepSpeed; //this is set by the context menu
} //by default, it's set to 2 in
else //the constructor
sheepX = screenW;
}
private void aboutToolStripMenuItem1_Click(object sender, EventArgs e)
{
About about = new About();
about.Show();
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
notifyIcon1.Dispose();//getting rid of the notify
this.Close(); //icon from the system tray
}
private void fastToolStripMenuItem_Click(object sender, EventArgs e)
{
sheepSpeed = 3; //fast, "moves 3 pixels at a time"
}
private void mediumToolStripMenuItem_Click(object sender, EventArgs e)
{
sheepSpeed = 2; //medium, "moves 2 pixels at a time"
}
private void slowToolStripMenuItem_Click(object sender, EventArgs e)
{
sheepSpeed = 1; //slow, "moves 1 pixels at a time"
}
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
About about = new About();
about.Show();
}
}
}
Notice that I've used System.Windows.Forms.Screen.PrimaryScreen.Bounds to get the primary screen boundaries nevertheless; I endup with adding 22 pixels to fix
the Form Y location. Now I'm using:
System.Windows.Forms.Screen.PrimaryScreen.WorkingArea
Only now can I remove the 22 tweaking pixels. Thanks to cokeman's feedback!
Because CodeProject doesn't allow EXEs in article submission, I've renamed the *.exe demo file to *.zip, so it's actually not a zip file! Please rename it first to *.exe before running it.
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 23 Mar 2008 Editor: Deeksha Shenoy |
Copyright 2006 by
Muammar© Everything else Copyright © CodeProject, 1999-2009 Web22 | Advertise on the Code Project |