Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace eventsDelegates
{

public partial class Form1 : Form


{
Car c;
int i = 0;
public Form1()
{
InitializeComponent();
c = new Car(100);
c.SpeedDanger += new CarEventHandler(CarSpeedDanger);
c.Dead += new CarEventHandler(carDead);
c.speedChanged += new CarEventHandler(speedChanged);

private void speedChanged(object sender, EventArgs e)


{
label2.Text = ((Car)sender).CurrentSpeed().ToString();
}

private void carDead(object sender, EventArgs e)


{
label1.Text = "‫;"السيارة انتهت و عملت حادث‬
}

private void Form1_Load(object sender, EventArgs e)


{
/// Car c = new Car(int maxspeed);

private void button1_Click(object sender, EventArgs e)


{

c.accelerat(10);
// i += 10;

}
private void CarSpeedDanger(object sender, EventArgs e)
{
label1.Text = "‫;"انتبة السرعة تجعل السيارة في حالة خطر‬
}

}
}

‫هذا الكود حق االحداث في الكالس حق الفورم ونفعل كالس ثاني‬


‫اسمه سياره داخله هذا الكود‬
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace eventsDelegates
{
public delegate void CarEventHandler(object sender,EventArgs e);

public class Car


{
int maxSpeed;
int currentSpeed;
bool isDead;
public event CarEventHandler Dead;
public event CarEventHandler SpeedDanger;
public event CarEventHandler speedChanged;
public Car()
{

}
public Car(int max)
{
this.maxSpeed = max;
}
public void accelerat(int delta)
{
if ((maxSpeed-currentSpeed)==10&&SpeedDanger!=null)
{
SpeedDanger(this,null);
currentSpeed += delta;
speedChanged(this, null);
}
else if ((currentSpeed >= maxSpeed)&&Dead!=null)
{
Dead(this, null);
}
else
{
currentSpeed += delta;
speedChanged(this, null);
}
}

internal int CurrentSpeed()


{
return this.currentSpeed;
}
}
}

You might also like