Автор: Пользователь скрыл имя, 19 Мая 2013 в 19:13, курсовая работа
Электронная программа «Ежедневник» разработана на языке программирования Delphi. При разработке электронного ежедневника будет предусмотрено создание заметок о событии и соответствующей ему дате.
Данная программа предназначена для ведения файлов подобных страницам адресной записной книжки и способна полностью заменить собой ее бумажных предшественников. Созданная для этого система освободит пользователя от монотонной работы.
В результате проделанной работы был повторен и использован при разработке программы пройденный материал по программированию в среде разработки Borland Delphi 7.
Достаточно интересно было работать с графикой, с основными графическими инструментами среды программирования Delphi.
Список использованной литературы
2 Вирт Н. Алгоритмы и структуры данных.. Москва. Мир. 2001 г. 352 стр.
3 Учебный курс лекций – практик.
Приложение А
Листинг программы
unit org_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, DBTables, StdCtrls, DBCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Query1: TQuery;
Label1: TLabel;
Button2: TButton;
Button3: TButton;
Button5: TButton;
Label2: TLabel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
procedure FormActivate(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Label2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
stDay : array[1..7] of string[11] = ('воскресенье','понедельник','
stMonth : array[1..12] of string[8] = ('января','февраля','марта',
implementation
{$R *.dfm}
uses DateUtils;
// сегодняшняя дата и день недели
procedure TForm1.FormActivate(Sender: TObject);
var
Present: TDateTime;
Year, Month, Day : Word;
begin
Present:= Now; // Now - функция, возвращает текущую дату и время
DecodeDate(Present, Year, Month, Day);
Label1.Caption := 'Сегодня ' + IntToStr(Day)+' '
+ StMonth[Month] + ' '+ IntToStr(Year)+' года,
'+stDay[DayOfWeek(Present)]+'.
Form1.Label2.Caption := 'Сегодня и на ближайшие дни:';
end;
// установление фона приложения, который берется из файла
procedure TForm1.FormResize(Sender: TObject);
var bm:TBitmap;
begin
bm:=TBitmap.Create;
bm.LoadFromFile('Fon.bmp');
Canvas.StretchDraw(ClientRect,
bm.Free;
end;
// щелчок на кнопке Сегодня
procedure TForm1.Button2Click(Sender: TObject);
var
st : string; // критерий запроса
begin
Form1.Label2.Caption := 'Сегодня';
st:= FormatDateTime('dd/mm/yyyy',
Form1.Query1.SQL[3] := '(Data = '''+st+''')';
Form1.Query1.Open;
if form1.Query1.RecordCount <> 0 then
form1.DataSource1.DataSet := Form1.Query1
else begin
ShowMessage('На сегодня никаких дел не запланировано.');
//form1.DataSource1.DataSet := Table1;
end;
end;
// щелчок по кнопке завтра
procedure TForm1.Button3Click(Sender: TObject);
var
Present, // сегодня
Tomorrow: TDateTime; // завтра
begin
Form1.Label2.Caption := 'Завтра';
Present:= Now; // Now - функция, возвращает текущую дату и время
Tomorrow := IncDay(Present); // завтра
Form1.Query1.SQL[3] :=
'(Data = '''+ FormatDateTime('dd/mm/yyyy',
Form1.Query1.Open;
if form1.Query1.RecordCount <> 0 then
form1.DataSource1.DataSet := Form1.Query1
else
ShowMessage('На завтра никаких дел не запланировано!!!');
end;
// Закрытие приложения
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Form1.Close();
end;
// показать все записи
procedure TForm1.Button5Click(Sender: TObject);
begin
Form1.Label2.Caption := 'Планы на будущее';
DataSource1.DataSet := Table1;
Table1.Active := True;
end;
end.
// Главный модуль программы
program org;
uses
Forms,
org_ in 'org_.pas' {Form1},
SysUtils,Dialogs,
DateUtils, // для доступа к IncDay
DBTables; // для доступа к Session, AddStandardAlias
{$R *.res}
var
Present: TDateTime; // сегодня
NextDay: TDateTime; // следующий день
Year, Month, Day : Word; // год, месяц, день
Query: TQuery; // запрос, обеспечивающий
// создание БД (таблицы)
begin
Application.Initialize;
Application.Title := 'Ежедневник';
Application.CreateForm(TForm1, Form1);
// создадим псевдоним БД
with Session do
begin
ConfigMode := cmSession;
AddStandardAlias('diary', // псевдоним БД
ExtractFilePath(ParamStr(0)), // каталог
'PARADOX');
end;
// определим текущую дату
Present:= Now; // Now - функция, возвращает текущую дату и время
DecodeDate(Present, Year, Month, Day);
case {dof} DayOfWeek(Present) of
6: NextDay := IncDay(Present,3); // пятница
7: NextDay := IncDay(Present,2); // суббта
else NextDay := IncDay(Present,1)
end;
// запрос к базе данных: есть ли дела, запланированные на сегодня и ближайшие дни
Form1.Query1.SQL[3] :=
'(Data >= '''+
FormatDateTime('dd/mm/yyyy',
'(Data <= '''+
FormatDateTime('dd/mm/yyyy',
try
Form1.Query1.Open; // выполнить запрос
except
on E:EDBEngineError do
begin
MessageDlg('Файл таблицы базы данных не найден .'+#13+
'Таблица будет создана.',
Query := TQuery.Create(Form1);
with Query do
begin
// сформируем запрос, обеспечивающий создание БД
SQL.Add('CREATE TABLE diary (');
SQL.Add('What CHAR(80),');
SQL.Add('Data DATE);');
ExecSQL;
end;
// таблица создана
Form1.Query1.Open; // выполним запрос
end;
end;
if Form1.Query1.RecordCount <> 0 // есть дела, запланированные на ближайшие дни
then
Form1.DataSource1.DataSet := Form1.Query1
else
begin
Form1.DataSource1.DataSet := Form1.Table1;
Form1.Table1.Open;
ShowMessage('На сегодня и ближайшие дни никаких дел не запланировано.');
end;
Application.Run;
end.