Часы на С#

Автор работы: Пользователь скрыл имя, 04 Марта 2013 в 22:35, курсовая работа

Описание работы

Создать проект, реализующий аналоговые часы. В программе должны иметься отдельные минутная, часовая и секундная стрелки. Необходимо реализовать будильник с возможностью установления даты сигналы. Должна быть реализована возможность выбора в качестве сигнала аудио файла.

Содержание работы

Введение 3
Постановка задачи 4
Теоретическая часть 5
Результат работы программы 8
Заключение 9
Список литературы 10
Приложение. Листинг программы 11

Файлы: 1 файл

Курсовой часы на C#.docx

— 106.09 Кб (Скачать файл)

                    if (File.Exists(Properties.Settings.Default.HourImgPath)) imageList1.Images.Add(Image.FromFile(Properties.Settings.Default.HourImgPath), Properties.Settings.Default.IndicatorsTransp);

                    else imageList1.Images.Add(Properties.Resources.indicator_hour_res);

                    if (File.Exists(Properties.Settings.Default.MinImgPath)) imageList1.Images.Add(Image.FromFile(Properties.Settings.Default.MinImgPath), Properties.Settings.Default.IndicatorsTransp);

                    else imageList1.Images.Add(Properties.Resources.indicator_min_res);

                    if (File.Exists(Properties.Settings.Default.SecsImgPath)) imageList1.Images.Add(Image.FromFile(Properties.Settings.Default.SecsImgPath), Properties.Settings.Default.IndicatorsTransp);

                    else imageList1.Images.Add(Properties.Resources.indicator_sec_res);

                }

                else

                {

                    this.Size = Properties.Resources.backgnd_res.Size; // выставляем размер окна равным размеру фона

                    this.BackgroundImage = Properties.Resources.backgnd_res; // загружаем стандартный фон часов

                    this.TransparencyKey = Color.White;                 // выставляем прозрачный цвет для станд. фона (белый)

                    this.BackColor = Color.White;                       // выставляем цвет для формы (белый)

 

                    imageList1.ImageSize = Properties.Resources.indicator_hour_res.Size;  // выставляем размер картинок в списке картинок, равным размеру картинок со стрелками

                    // НАПОМИНАНИЕ: размеры картинок со стрелками (часовая, минутная, секундная) ДОЛЖНЫ БЫТЬ РАВНЫМИ !!!!

                    imageList1.TransparentColor = Color.White; ; // выставляем прозрачный цвет картинок со стрелками (для стандартных картинок он белый)

                    imageList1.Images.Add(Properties.Resources.indicator_hour_res); // загружаем картинки

                    imageList1.Images.Add(Properties.Resources.indicator_min_res);

                    imageList1.Images.Add(Properties.Resources.indicator_sec_res);                      imageList1.Images.Add(Properties.Resources.Ring_res);

                }

           

            gr = this.CreateGraphics(); // создаем графический обьект (полотно) на форме для рисования на нем часов     

        }

        private void выходToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Application.Exit(); // завершаем приложение

        }

        private void Form1_MouseDown(object sender, MouseEventArgs e)

        {

            mouseX = MousePosition.X - this.Left;  // при нажатии какой то кнопки мыши вычисляем разницу между ее положением и положением окна

            mouseY = MousePosition.Y - this.Top;

            mousepressed = true;  // указываем, что нажата кнопка мыши

    }

        private void Form1_MouseMove_1(object sender, MouseEventArgs e)

        {

            if (mousepressed == true) // если какая то кнопка мыши зажата, то...

            {

                if (mouseX != MousePosition.X - this.Left) this.Left = MousePosition.X - mouseX; //при движении мыши передвигаем окно

                if (mouseY != MousePosition.Y - this.Top) this.Top = MousePosition.Y - mouseY;

            }

        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)

        {

            mousepressed = false; // кнопки мыши отпущены

        }

        private void будильникToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Form2 frm2 = new Form2(); // создаем форму с настройками

            frm2.ShowDialog(this);    // показываем ее

            this.Form1_Load(sender, e); // обращаемся к функции Form1_Load для перезагрузки картинок в список картинок imageList1

            if (Properties.Settings.Default.StandImgSetting == true)

            {

                this.Size = Properties.Resources.backgnd_res.Size;

                this.BackgroundImage = Properties.Resources.backgnd_res;

                this.BackColor = Color.White;

                this.TransparencyKey = Color.White;

                imageList1.Images.Clear();

                imageList1.ImageSize = Properties.Resources.indicator_hour_res.Size;

                imageList1.Images.Add(Properties.Resources.indicator_hour_res);

                imageList1.Images.Add(Properties.Resources.indicator_min_res);

                imageList1.Images.Add(Properties.Resources.indicator_sec_res);

 

            }

            else

            {

               if (File.Exists(Properties.Settings.Default.BackgndImgPath))

               {

                   this.Size = Image.FromFile(Properties.Settings.Default.BackgndImgPath).Size;

                   this.BackgroundImage = Image.FromFile(Properties.Settings.Default.BackgndImgPath);

               }

             

                this.TransparencyKey = Properties.Settings.Default.BackTransp;

                this.BackColor = Properties.Settings.Default.BackTransp;

 

               imageList1.Images.Clear();

               if (File.Exists(Properties.Settings.Default.HourImgPath)) imageList1.Images.Add(Image.FromFile(Properties.Settings.Default.HourImgPath));

               if (File.Exists(Properties.Settings.Default.MinImgPath)) imageList1.Images.Add(Image.FromFile(Properties.Settings.Default.MinImgPath));

               if (File.Exists(Properties.Settings.Default.SecsImgPath)) imageList1.Images.Add(Image.FromFile(Properties.Settings.Default.SecsImgPath));

            }

          

        }

 

      }

}

namespace WindowsFormsApplication1

{

    public partial class Form2 : Form

     

    {

        public string ImgPath;

 

        public Form2()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            // меняем надпись на кнопке в зависимости от того, что на ней уже написано, и сохраняем состояние будильника в настройках

            switch (button1.Text)

            {

                case "Включить": { button1.Text = "Выключить"; Properties.Settings.Default.IsAlarm = true; break; }

                case "Выключить": { button1.Text = "Включить"; Properties.Settings.Default.IsAlarm = false; break; }

            }

            Properties.Settings.Default.AlarmTime = dateTimePicker2.Value; // записывем данные в настройки

            Properties.Settings.Default.AlarmDate = dateTimePicker1.Value;

            Properties.Settings.Default.AlarmText = textBox1.Text;

            Properties.Settings.Default.Save();     // сохраняем настройки

        }

        private void button2_Click(object sender, EventArgs e)

        {

            this.Hide(); // скрываем окно настроек

        }

        private void Form2_Shown(object sender, EventArgs e)

        {

            checkBox2.Checked = Properties.Settings.Default.StayOnTop;

            // устанавливаем надпись на кнопке в зависимости от значения IsAlarm в настройках

            switch (Properties.Settings.Default.IsAlarm)

            {

                case true: button1.Text = "Выключить"; break;

                case false: button1.Text = "Включить"; break;

            }

            if (Properties.Settings.Default.StandImgSetting == true)

            { // если выбран стандарный вид часов, отключаем кнопки изменения картинок

                checkBox1.Checked = true;

                button4.Enabled = false;

                button5.Enabled = false;

                button6.Enabled = false;

                button7.Enabled = false;

                button8.Enabled = false;

                button9.Enabled = false;

            }

            else

            {  // в противном случае просто загружаем из настроек значения прозрачных цветов (кнопки изменения картинок по умолчанию активны, поэтому не надо ставить их Enabled= true)

                button8.BackColor = Properties.Settings.Default.IndicatorsTransp;

                button9.BackColor = Properties.Settings.Default.BackTransp;

            }

            // зчитываем данные из настроек

            dateTimePicker1.Value = Properties.Settings.Default.AlarmDate;

            dateTimePicker2.Value = Properties.Settings.Default.AlarmTime;

            textBox1.Text = Properties.Settings.Default.AlarmText;

 

            numericUpDown1.Value = Properties.Settings.Default.indHourUp;

            numericUpDown2.Value = Properties.Settings.Default.indMinUp;

            numericUpDown3.Value = Properties.Settings.Default.indSecUp;

        }

        private void button3_Click(object sender, EventArgs e)

        {

            openFileDialog1.Filter = "Аудио|*.mp3; *.wav"; // ставим фильтр для диалога открытия файла

            if (openFileDialog1.ShowDialog() == DialogResult.OK) // если выбран аудиофайл..

            {

                Properties.Settings.Default.AudioFilename = openFileDialog1.FileName; // записываем путь и название файла в настройки

                Properties.Settings.Default.Save(); // сохраняем настройки

            }

        }

        private void button4_Click(object sender, EventArgs e)

        {

            openFileDialog1.Filter = "Картинки|*.bmp; *.jpg; *.gif; *.png"; // ставим фильтр для диалога открытия файла

            if (openFileDialog1.ShowDialog() == DialogResult.OK)

            {

              Properties.Settings.Default.BackgndImgPath = openFileDialog1.FileName;

              Properties.Settings.Default.Save();

             }       

        }

        private void button5_Click(object sender, EventArgs e)

        {

            openFileDialog1.Filter = "Картинки|*.bmp; *.jpg; *.gif; *.png"; // ставим фильтр для диалога открытия файла

            if (openFileDialog1.ShowDialog() == DialogResult.OK)

            {

                Properties.Settings.Default.SecsImgPath = openFileDialog1.FileName;

                Properties.Settings.Default.Save();

            }

        }

        private void button6_Click(object sender, EventArgs e)

        {

            openFileDialog1.Filter = "Картинки|*.bmp; *.jpg; *.gif; *.png"; // ставим фильтр для диалога открытия файла

            if (openFileDialog1.ShowDialog() == DialogResult.OK)

            {

                Properties.Settings.Default.MinImgPath = openFileDialog1.FileName;

                Properties.Settings.Default.Save();

            }

        }

        private void button7_Click(object sender, EventArgs e)

        {

            openFileDialog1.Filter = "Картинки|*.bmp; *.jpg; *.gif; *.png"; // ставим фильтр для диалога открытия файла

            if (openFileDialog1.ShowDialog() == DialogResult.OK)

            {

                Properties.Settings.Default.HourImgPath = openFileDialog1.FileName;

                Properties.Settings.Default.Save();

            }

        }

        private void button9_Click(object sender, EventArgs e)

        {

            if (colorDialog1.ShowDialog() == DialogResult.OK)  // выбираем прозрачный цвет для стрелок

            {

                button9.BackColor = colorDialog1.Color;

                Properties.Settings.Default.BackTransp = colorDialog1.Color;

                Properties.Settings.Default.Save();

            }

        }

        private void button8_Click(object sender, EventArgs e)

        {

            if (colorDialog1.ShowDialog() == DialogResult.OK) // выбираем прозрачный цвет для стрелок

            {

                button8.BackColor = colorDialog1.Color;

                Properties.Settings.Default.IndicatorsTransp = colorDialog1.Color;

                Properties.Settings.Default.Save();

            }   

        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)

        {

            if (checkBox1.Checked)  // при изменении значения "Применить стандартный внешний вид" откл/вкл кнопки для выбора картинок

            {

                button4.Enabled = false;

                button5.Enabled = false;

                button6.Enabled = false;

                button7.Enabled = false;

                button8.Enabled = false;

                button9.Enabled = false;

                button10.Enabled = false;

                Properties.Settings.Default.StandImgSetting = true; // записываем сделанный выбор в настройки

            }

            else

            {

                button4.Enabled = true;

                button5.Enabled = true;

                button6.Enabled = true;

                button7.Enabled = true;

                button8.Enabled = true;

                button9.Enabled = true;

                button10.Enabled = true;

                Properties.Settings.Default.StandImgSetting = false;

            }

            Properties.Settings.Default.Save();  // сохраняем настройки после их изменений   

        }

        private void button10_Click(object sender, EventArgs e)

        {

            openFileDialog1.Filter = "Картинки формата PNG|*.png";

            if (openFileDialog1.ShowDialog() == DialogResult.OK)

            {

                Properties.Settings.Default.AlarmImgPath = openFileDialog1.FileName;

                Properties.Settings.Default.Save();

            }

        }

        private void numericUpDown1_ValueChanged(object sender, EventArgs e)

        {

            Properties.Settings.Default.indHourUp = (int) numericUpDown1.Value;

            Properties.Settings.Default.Save();

        }

        private void numericUpDown2_ValueChanged(object sender, EventArgs e)

        {

            Properties.Settings.Default.indMinUp = (int)numericUpDown2.Value;

            Properties.Settings.Default.Save();

        }

        private void numericUpDown3_ValueChanged(object sender, EventArgs e)

        {

            Properties.Settings.Default.indSecUp = (int)numericUpDown3.Value;

            Properties.Settings.Default.Save();

        }

        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)

        {

        }

        private void checkBox2_CheckedChanged(object sender, EventArgs e)

        {

            Properties.Settings.Default.StayOnTop = checkBox2.Checked;

            Properties.Settings.Default.Save();

        }

        }

 


Информация о работе Часы на С#