C# Calculator Using Delegation

Here is the source code for a C# based calculator that uses delegation.

using System;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;

namespace TestingDOTNET
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : Form
{
private Button button;
private TextBox screenbox;
private String buttonLabel;
private Label label;
private double PreviousNumber;
private double NextNumber;
private double Result;
private bool Nextflg;
private bool Prevflg;
int OP;
/// <summary>
/// Required designer variable.
/// </summary>
public Form1()
{
InitializeComponent();
}

[STAThread]
static void Main()
{
Form1 form1=new Form1();
Application.Run(form1);
}

private void InitializeComponent()
{
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(160, 170);
this.Name = "Form1";
this.Text = "Sharp 208";
PreviousNumber=0;
NextNumber=0;
Prevflg = false;
Nextflg = false;

for (int X=0;X<150;X+=40)
for(int Y=50;Y<150;Y+=30)
{
if (Y<150 && X==0)
{
if (Y==50)
CreateNumericPad(X,Y,System.Convert.ToString(3));
else if (Y==80)
CreateNumericPad(X,Y,System.Convert.ToString(2));
else if (Y==110)
CreateNumericPad(X,Y,System.Convert.ToString(1));
else if (Y==140)
CreateNumericPad(X,Y,System.Convert.ToString(0));
}
else if(Y<150 && X==40)
{
if (Y==50)
CreateNumericPad(X,Y,System.Convert.ToString(7));
else if (Y==80)
CreateNumericPad(X,Y,System.Convert.ToString(6));
else if (Y==110)
CreateNumericPad(X,Y,System.Convert.ToString(5));
else if (Y==140)
CreateNumericPad(X,Y,System.Convert.ToString(4));

}
else if(Y<150 && X==80)
{
if (Y==50)
CreateNumericPad(X,Y,System.Convert.ToString("+"));
else if (Y==80)
CreateNumericPad(X,Y,System.Convert.ToString("-"));
else if (Y==110)
CreateNumericPad(X,Y,System.Convert.ToString(9));
else if (Y==140)
CreateNumericPad(X,Y,System.Convert.ToString(8));

}
else if(Y<150 && X==120)
{
if (Y==50)
CreateNumericPad(X,Y,System.Convert.ToString("/"));
else if (Y==80)
CreateNumericPad(X,Y,System.Convert.ToString("*"));
else if (Y==110)
CreateNumericPad(X,Y,System.Convert.ToString("ON"));
else if (Y==140)
CreateNumericPad(X,Y,System.Convert.ToString("="));

}
}
CreateScreen(150,50);
}

public void CreateNumericPad(int X,int Y,String buttonLabel)
{
button = new System.Windows.Forms.Button();
button.Location=new System.Drawing.Point(X,Y);
button.Size = new System.Drawing.Size(40,30);
button.Text = buttonLabel;
Controls.Add(button);
button.Click += new EventHandler(this.button_Clicked);
}

public void CreateScreen(int X,int Y)
{
label = new System.Windows.Forms.Label();
screenbox = new System.Windows.Forms.TextBox();

screenbox.Location = new System.Drawing.Point(0,20);
screenbox.Height = Y;
screenbox.Width = X;
screenbox.MaxLength = 18;
Controls.Add(screenbox);

label.Location = new System.Drawing.Point(0,5);
label.Size = new System.Drawing.Size(100,115);
label.Text = "8 Digits Calculator";
Controls.Add(label);

}

private void button_Clicked(Object sender,EventArgs e)
{
//this.buttonLabel = "BB";
screenbox.TextAlign = HorizontalAlignment.Right;

if (sender is Button)
CheckPosition((Button)sender);

}

private void CheckPosition(Button button)
{

if (button.Location.Y<150 && button.Location.X==0)
{
if (button.Location.Y==50)
ShowValueOnScreen(System.Convert.ToString(3));
else if(button.Location.Y==80)
ShowValueOnScreen(System.Convert.ToString(2));
else if(button.Location.Y==110)
ShowValueOnScreen(System.Convert.ToString(1));
else if(button.Location.Y==140)
ShowValueOnScreen(System.Convert.ToString(0));
}
else if(button.Location.Y<150 && button.Location.X==40)
{
if (button.Location.Y==50)
ShowValueOnScreen(System.Convert.ToString(7));
else if(button.Location.Y==80)
ShowValueOnScreen(System.Convert.ToString(6));
else if(button.Location.Y==110)
ShowValueOnScreen(System.Convert.ToString(5));
else if(button.Location.Y==140)
ShowValueOnScreen(System.Convert.ToString(4));
}
else if(button.Location.Y<150 && button.Location.X==80)
{
if (button.Location.Y==50)
ShowValueOnScreen("+");
else if(button.Location.Y==80)
ShowValueOnScreen("-");
else if(button.Location.Y==110)
ShowValueOnScreen(System.Convert.ToString(9));
else if(button.Location.Y==140)
ShowValueOnScreen(System.Convert.ToString(8));
}
else if(button.Location.Y<150 && button.Location.X==120)
{
if (button.Location.Y==50)
ShowValueOnScreen("/");
else if(button.Location.Y==80)
ShowValueOnScreen("*");
else if(button.Location.Y==110)
ShowValueOnScreen("ON");
else if(button.Location.Y==140)
ShowValueOnScreen("=");
}

}

private void ShowValueOnScreen(String screencontent)
{
if(screencontent != "/" && screencontent != "*" && screencontent != "+" && screencontent != "-" && screencontent != "=" && screencontent != "ON")
{
screenbox.AppendText(screencontent);
}
else
{
CheckOperator(screencontent);
}
}

private void CheckOperator(String screencontent)
{

if(screencontent == "/" || OP==1)
{
OP=1;
if (Prevflg!=true)
{
Prevflg=true;
PreviousNumber = System.Convert.ToDouble(screenbox.Text);
screenbox.Clear();
}//Prevflg
else if(Nextflg!=true)
{
if(screencontent=="=")
{
Nextflg = true;
NextNumber = System.Convert.ToDouble(screenbox.Text);
Prevflg=false;
}//=
}//Nextflg

}//"/"
else if(screencontent == "*" || OP==2)
{
OP=2;
if (Prevflg!=true)
{
Prevflg=true;
PreviousNumber = System.Convert.ToDouble(screenbox.Text);
screenbox.Clear();
}//Prevflg
else if(Nextflg!=true)
{
if(screencontent=="=")
{
Nextflg = true;
NextNumber = System.Convert.ToDouble(screenbox.Text);
Prevflg=false;
}//=
}//Nextflg
}//*
else if(screencontent == "+" || OP==3)
{
OP=3;
if (Prevflg!=true)
{
Prevflg=true;
PreviousNumber = System.Convert.ToDouble(screenbox.Text);
screenbox.Clear();
}//PrevFlag
else if(Nextflg!=true)
{
if(screencontent=="=")
{
Nextflg = true;
NextNumber = System.Convert.ToDouble(screenbox.Text);
Prevflg=false;
}//=
}//Nextflg
}//+
else if(screencontent == "-" || OP==4)
{
OP=4;
if (Prevflg!=true)
{
Prevflg=true;
PreviousNumber = System.Convert.ToDoub

le(scree
nbox.Text);
screenbox.Clear();
}//Prevflg
else if(Nextflg!=true)
{
if(screencontent=="=")
{
Nextflg = true;
NextNumber = System.Convert.ToDouble(screenbox.Text);
Prevflg=false;
}//=
}//NextFlg
}//-
else if(screencontent == "ON")
{
screenbox.Clear();
//ShowValueOnScreen(System.Convert.ToString(0));
}
if(screencontent=="=")
{
if(OP==1)
{
if (NextNumber > 0.0)
{
Result = PreviousNumber / NextNumber;
screenbox.Clear();
ShowValueOnScreen(System.Convert.ToString(Result));
Nextflg=false;

Result=0;
PreviousNumber=0;
NextNumber=0;
OP=0;
}
}//OP1
if(OP==2)
{
Result = PreviousNumber * NextNumber;
screenbox.Clear();
ShowValueOnScreen(System.Convert.ToString(Result));
Nextflg=false;

Result=0;
PreviousNumber=0;
NextNumber=0;
OP=0;
}//OP2
if(OP==3)
{
Result = PreviousNumber + NextNumber;
screenbox.Clear();
ShowValueOnScreen(System.Convert.ToString(Result));
Nextflg=false;

Result=0;
PreviousNumber=0;
NextNumber=0;
OP=0;
}//OP3
if(OP==4)
{
Result = PreviousNumber – NextNumber;
screenbox.Clear();
ShowValueOnScreen(System.Convert.ToString(Result));
Nextflg=false;

Result=0;
PreviousNumber=0;
NextNumber=0;
OP=0;
}//OP4
}//ScreenContent
}
}
}

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

No comments yet... Be the first to leave a reply!