Ежедневник

Автор: Пользователь скрыл имя, 12 Декабря 2010 в 02:16, курсовая работа

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

В данной курсовой работе разрабатывается прикладная программа «Ежедневник», реализующая функции телефонного справочника и планировщика заданий. Программа позволяет пользователю планировать свое расписание на целый день, который разбит с шагом 30 минут. А телефонный справочник позволяет хранить все важные контакты.

Содержание

Введение………………………………………………………………………………..
1 Техническое задание………………………………………………………………...

1.Название и назначение разрабатываемой программы……………………….
2.Основание для разработки……………………………………………………..
3.Технические требования к программе………………………………………...
4.Функциональные требования к программе....………………………………...
5.Требования по надежности…………………………………………………….
2.Анализ технического задания…...…………………………………………………
3.Разработка и описание программы………………………………………………..
4.Руководство пользователя…………………………………………………………
5.Приложение ……………………………………………………………………
1.Модуль Unit1……………………………………………………………………
2.Модуль Unit2……………………………………………………………………
3.Модуль Unit3……………………………………………………………………
4.Модуль Unit4……………………………………………………………………
5.Модуль MyUnit…………………………………………………………………
Заключение……………………………………………………………………………..

Глоссарий ……………………………………………………………………………...

Список использованной литературы………………………………………………..

Работа содержит 1 файл

пояснительная записка.doc

— 545.00 Кб (Скачать)

//                    БУДИЛЬНИК                   *

//************************************************ 

// КНОПКА <ВКЛ./ВЫКЛ.>

procedure TForm1.AlarmButtonClick(Sender: TObject);

begin

     if AlarmButton.Down then

         begin

            Alarm:= TAlarm.Create;

            if (Form1.Edit1.Text <> '') and (Form1.MaskEdit1.Text <> '  :  ') then

              begin

                  Form1.GetAlarm;

                  Form1.Timer1.Enabled:= true;

              end

            else

             begin

               Form1.AlarmButton.Down:= False;

               MessageDlg('Введите данные!!!', mtInformation, [mbOk], 0);

               exit;

             end;

             //Form1.AlarmButton.Glyph.LoadFromFile('0.bmp');

             Form1.AlarmButton.Caption:= 'Выкл';

         end

      else

         begin

         //   Form1.AlarmButton.Glyph.LoadFromFile('1.bmp');

            Form1.AlarmButton.Caption:= 'Вкл';

            Form1.Timer1.Enabled:= False;

            Alarm.Destroy;

         end;

end; 

// ПРОЦЕДУРА  СЧИТЫВАЕТ ДАННЫЕ (ВРЕМЯ И СООБЩЕНИЕ)

procedure TForm1.GetAlarm;

begin

      Alarm.MsgText:= Form1.Edit1.Text;

      Alarm.AlarmTime:= StrToTime(Form1.MaskEdit1.Text);

end; 

// ЗДЕСЬ ТАЙМЕР  ВЫПОЛНЯЕТ ПРОЦЕДУРЫ ПРОВЕРКИ  НАСТОЯЩЕГО ВРЕМЕНИ И ТОГО ЧТО УСТАНОВЛЕНО У НАС

procedure TForm1.Timer1Timer(Sender: TObject);

begin

     Alarm.CheckTime;

      if Alarm.Handl then

          begin

              Form1.AlarmButton.Down:= False;

              Form1.AlarmButton.Caption:= 'Включить';

              Form1.Timer1.Enabled:= False;

          end;

end; 

// ЗАПИСЫВАЕМ  ВРЕМЯ И СООБЩЕНИЕ ВЗАВИСИМОСТИ ОТ ВЫБРАННОГО ВРЕМЕНИ В СПИСКЕ ДЕЛ

procedure TForm1.ListBox1Click(Sender: TObject);

var

  n: integer;

  s: string;

begin

    n:= Form1.ListBox1.ItemIndex;

    s:= copy(Form1.ListBox1.Items[n], 0, 2)+ ':' + copy(Form1.ListBox1.Items[n], 6, 2);

    Form1.MaskEdit1.Text:= s;

    s:= copy(form1.ListBox1.Items[n], 10, length(form1.ListBox1.Items[n]) - 8);

    Form1.Edit1.Text:= s;

end; 

//**********************************************

//                      ТРЕЙ                            *

//********************************************** 

// ОТЛАВЛИМАЕМ МИНИМИЗАЦИЮ ПРИЛОЖЕНИЯ

procedure TForm1.ControlWindow(var MSG: TMessage);

begin

     if MSG.WParam = SC_MINIMIZE then

        begin

            ic(1, application.Icon);      // добавляем значок в трей

            ShowWindow(handle, SW_HIDE);  // скрываем программу

            ShowWindow(Application.Handle, SW_HIDE); // скрываем кнопку в TAskBar

        end

      else inherited;

end; 

// РЕАКЦИЯ НАЖАТИЙ  КНОПОК НА ЗНАЧКЕ В ТРЕЕ

procedure TForm1.IconMouse(var Msg: Tmessage);

var

    p: TPoint;

begin

    GetCursorPos(p);      // ЗАПОМИНАЕМ КООРДИНАТЫ МЫШИ

    Case Msg.LParam of    // ПРОВЕРЯЕМ КАКАЯ КНОПКА БЫЛА НАЖАТА

      WM_LBUTTONUP,WM_LBUTTONDBLCLK:   

                     begin

                          // тут опишем другие процедур при необходимости

                     end;

      WM_RBUTTONUP:

          begin

      SetForegroundWindow(Handle);  // ВОССТАНВЛИВАЕМ ПРОГРАММУ В КАЧСТВЕ ПЕРВВОГО ОКНА

              PopupMenu2.Popup(p.X, p.Y);   // ПОКАЗЫВАЕМ POPUPMENU

              PostMessage(Handle, WM_NULL, 0, 0);

          END;

    END;

end; 

// Для работы  со значками в трее используется  функция Shell_NotifyIcon, объявленная в  модуле ShellApi. процедура работы со знаком в трее: n - номер операции

// ( 1 - добавить, 2 - удалить, 3 - заменить) и Icon - сама иконка 

procedure TForm1.Ic(n: integer; Icon: TIcon);

var

    nim: TNotifyIconData;

begin

    with nim do

      begin

        cbSize:= SizeOf(nim);

        Wnd:= Form1.Handle;

        uID:= 1;

       uFlags:= NIF_ICON or NIF_MESSAGE or NIF_TIP;

        hIcon:= Icon.Handle;

        uCallbackMessage:= wm_user + 1;

        szTip:= 'Программа "Ежедневник"';

      end; 

    case n of

      1: Shell_NotifyIcon(Nim_add, @nim);

      2: Shell_NotifyIcon(Nim_Delete, @Nim);

      3: Shell_NotifyIcon(Nim_Modify, @Nim);

    end;

end; 

procedure TForm1.OnMinimizeProc(sender: TObject);

begin

    PostMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);

end; 
 

// КОНТЕКСТОВОЕ  МЕНЮ ФОРМЫ: "ЕЖЕДНЕВНИК", ДЕЛАЕТ  ФОРМУ ВИДИМОЙ

procedure TForm1.PopEGClick(Sender: TObject);

begin

     ic(2,Application.Icon);   // УДАЛЯЕМ ЗНАЧОК ИЗ ТРЕЯ

     ShowWindow(Application.Handle, SW_SHOW);  // ВОССТАНАВЛИВАЕМ КНОПКУПРОГРАММЫ

     ShowWindow(Handle, SW_SHOW);  // ВОССТАНАВЛИВАЕМ ОКНО ПРГРАММЫ

end; 

// КОНТЕКСТОВОЕ  МЕНЮ ФОРМЫ: "ДОБАВИТЬ/РЕДАКТИРОВАТЬ  ДАТУ"

procedure TForm1.PopAddDateClick(Sender: TObject);

begin

     Form2.ShowModal;

end; 

// КОНТЕКСТОВОЕ МЕНЮ ФОРМЫ "ВКЛ/ВЫКЛ БУДИЛЬНИК"

procedure TForm1.PopOnAlarmClick(Sender: TObject);

begin

      if not Timer1.Enabled then

       begin

          AlarmButton.Down:= true;

          AlarmButtonClick(nil);

       end

      else

        begin

          AlarmButton.Down:= False;

          AlarmButtonClick(nil);

        end;

end; 

// КОНТЕКСТОВОЕ МЕНЮ ФОРМЫ "ВЫХОД"

procedure TForm1.PopExitClick(Sender: TObject);

begin

     Form1.Close;

end; 

end. 

    1. Модуль  Unit2
 

unit Unit2; 

interface 

uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, ComCtrls, ExtCtrls; 

type

  TForm2 = class(TForm)

    StringGrid1: TStringGrid;

    Panel1: TPanel;

    Label1: TLabel;

    DateTimePicker1: TDateTimePicker;

    AddButton: TButton;

    EditDBButton: TButton;

    SaveDbButton: TButton;

    Button1: TButton;

    ListBox1: TListBox;

    Label2: TLabel;

    DeletRecButton: TButton;

    procedure FormCreate(Sender: TObject);

    procedure AddButtonClick(Sender: TObject);

    procedure EditDBButtonClick(Sender: TObject);

    procedure DateTimePicker1Change(Sender: TObject);

    procedure SaveDbButtonClick(Sender: TObject);

    procedure ListBox1Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure FormShow(Sender: TObject);

    procedure DeletRecButtonClick(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

  private

    { Private declarations }

  public

    procedure DaysDate;

  end; 

var

  Form2: TForm2;

  n: integer;

 

implementation 

uses MyUnit, Unit1; 

{$R *.dfm} 
 

//*************************************************

//             ПРОЦЕДУРЫ ГЛАВНОЙ ФОРМЫ             *

//************************************************* 

// СОЗДАНИЕ ФОРМЫ:  ИНИЦИАЛИЗАЦИЯ ДАННЫХ

procedure TForm2.FormCreate(Sender: TObject);

var

    i,                // цикл

    c: integer;       // часы

    s: string;        // минуты

begin

      Form2.StringGrid1.ColWidths[1]:= 200;   // ЗАДАЕМ  ДЛИНУ

      Form2.StringGrid1.Width:= Form2.StringGrid1.ColWidths[0] +

                                form2.StringGrid1.ColWidths[1]; // ОПРЕДЕЛЯЕМ ОБЩУЮ ДЛИНУ ТАБЛИЦЫ 

      c:= 0;                    // ноль часов

      s:= '00';                 // ноль минут 

      // разбиваем день с интервалом 30 мин.

      // записываем время в первую  ячейку

      Form2.StringGrid1.Cells[0,0]:= '0' + IntToStr(c) + ' : ' + s; 

      // записываем время в остальные  ячейки

      for i:= 1 to 48 do

        begin

           if i mod 2 = 0 then

               s:= '30'

           else

              begin

                  s:= '00';

                  inc(c);

              end;

           if c < 10 then

                Form2.StringGrid1.Cells[0,i]:= '0' + IntToStr(c) + ' : ' + s

           else  Form2.StringGrid1.Cells[0,i]:= IntToStr(c) + ' : ' + s

        end;

end; 
 

// ПИШЕМ ВСЕ  ДАТЫ В LISTBOX

procedure TForm2.DaysDate;

var

    i: integer;

begin

      ListBox1.Items.Clear;

      seek(TypFile.FFile, 0);

      for i:= 0 to typFile.NumberRec - 1 do

        begin

            read(typFile.ffile, EG);

            ListBox1.Items.Add(eg.Date);

        end;

      ListBox1.Sorted:= true;

end; 
 

// ФОРМИРУЕМ  СПИСОК ДАТ

procedure TForm2.FormShow(Sender: TObject);

begin

    ListBox1.Items.Clear;

    DaysDate;

end; 
 

// ПРИ НАЖАТИИ  НА LISTBOX ПЕРЕДАЕМ ДАТУ В КАЛЕНДАРЬ

procedure TForm2.ListBox1Click(Sender: TObject);

Var

    n: integer;

begin

     n:= ListBox1.ItemIndex;

     DateTimePicker1.Date:= StrToDate(ListBox1.Items[n]);

end; 
 
 

Информация о работе Ежедневник