Заключение
Результатом курсового проекта является программа, выполненная в среде Delphi, с использованием дополнительных компонентов, и разработанная по всем правилам разработки программного продукта.
Программа предусматривает выполнение строго ограниченных функций, необходимых для сотрудников фирмы.
В программе использованы и закреплены практически все навыки программирования в среде Delphi 7.
За время работы над работой я закрепил навыки работы с интегрированной средой программирования Delphi 7.0, а так же работу с нестандартными компонентами. При разработке данной программы мне пришлось столкнуться с множеством проблем. Но благодаря использованию различной литературы, а также ранее полученного опыта удалось обойти или решить большинство этих проблем. Накопленный мной опыт, несомненно, пригодится в будущем, при разработке программ.
Список использованных источников
Попов В. М. Программирование в T. Pascal . − М.: Просвещение, 1997.
Макарова И. Р. Информатика. − М.: Финансы и статистика, 2003.
Рудаков А. В. Технология разработки программных продуктов. − М.: Академия, 2004.
Хомоненко А. Гофман В. Delphi 7 в подлиннике. − М.: Просвещение, 2004.
Никифоров В. В. Основы разработки программных продуктов. − М.: Просвещение, 2004.
Марченко А. И. Программирование в среде T. Pascal. − Киев: Юниор, 1997.
Немнюгин С. А. Программирование на языке высокого уровня. − М.: Просвещение, 1996.
Вендров А. М. Проектирование программного обеспечения экономических информационных систем. − М.: Финансы и статистика, 2000. − 352 с.
Соммервил И. Инженерия программного обеспечения. − М.: СПб.: Киев: Изд. Дом «Вильямс», 2002. − 624 с.
Приложение А
Входные документы
Приложение Б
Текст программы
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {Form4},
Unit6 in 'Unit6.pas' {Form6},
Unit7 in 'Unit7.pas' {Form7},
Unit12 in 'Unit12.pas' {Form12},
Unit13 in 'Unit13.pas' {Form13},
Unit11 in 'Unit11.pas' {Form11},
Unit16 in 'Unit16.pas' {Form16},
Unit8 in 'Unit8.pas' {Form8},
Unit9 in 'Unit9.pas' {Form9},
Unit5 in 'Unit5.pas' {Form5},
Unit15 in 'Unit15.pas' {Form15},
Unit17 in 'Unit17.pas' {Form17},
Unit18 in 'Unit18.pas' {Form18},
Unit19 in 'Unit19.pas' {Form19},
Unit20 in 'Unit20.pas' {Form20},
Unit21 in 'Unit21.pas' {Form21},
Unit22 in 'Unit22.pas' {Form22},
Unit10 in 'Unit10.pas' {Form10},
Unit14 in 'Unit14.pas' {Form14};
{$R *.res}
begin
Application.Initialize;
Application.Title:= 'УралСтройМонтаж';
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm7, Form7);
Application.CreateForm(TForm12, Form12);
Application.CreateForm(TForm13, Form13);
Application.CreateForm(TForm11, Form11);
Application.CreateForm(TForm16, Form16);
Application.CreateForm(TForm8, Form8);
Application.CreateForm(TForm9, Form9);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm15, Form15);
Application.CreateForm(TForm17, Form17);
Application.CreateForm(TForm18, Form18);
Application.CreateForm(TForm19, Form19);
Application.CreateForm(TForm20, Form20);
Application.CreateForm(TForm21, Form21);
Application.CreateForm(TForm22, Form22);
Application.CreateForm(TForm10, Form10);
Application.CreateForm(TForm14, Form14);
Application.Run;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Menus, ExtCtrls, StdCtrls, XPMan, ComCtrls, Unit9, Mask,Buttons, jpeg ,Unit11, syncobjs,ImgList;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;N2: TMenuItem;
N19: TMenuItem;N18: TMenuItem;
N4: TMenuItem;N3: TMenuItem;
N5: TMenuItem;N6: TMenuItem;
N7: TMenuItem;N8: TMenuItem;
N9: TMenuItem;N10: TMenuItem;
N12: TMenuItem;N13: TMenuItem;
N15: TMenuItem;N16: TMenuItem;
N17: TMenuItem;Panel1: TPanel;
Label4: TLabel; Label1: TLabel;
Edit1: TEdit; Label2: TLabel;Edit2: TEdit;
Label3:TLabel;Label6:TLabel; SaveDialog1: TSaveDialog;
OpenDialog1: TOpenDialog; PrintDialog1: TPrintDialog;
XPManifest1: TXPManifest; Memo1: TMemo;
N20: TMenuItem; ControlBar1: TControlBar;
FontDialog1: TFontDialog; SpeedButton4: TSpeedButton;
SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton; SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton; SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton; SpeedButton9: TSpeedButton;
DateTimePicker1: TDateTimePicker;Timer1: TTimer;N11: TMenuItem;
Image1: TImage; Image2: TImage;Label9: TLabel;SpeedButton13: TSpeedButton;
SpeedButton14: TSpeedButton;Label8: TLabel; MaskEdit3: TMaskEdit;
Label7: TLabel; MaskEdit2: TMaskEdit;Label10: TLabel;
Label5: TLabel; Label12: TLabel; Memo4: TMemo; Timer2: TTimer;
RichEdit1: TRichEdit; SpeedButton11: TSpeedButton; Label11: TLabel;
N14: TMenuItem; procedure N5Click(Sender: TObject);
procedure N16Click(Sender: TObject); procedure N17Click(Sender: TObject);
procedure N7Click(Sender: TObject); procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject); procedure N3Click(Sender: TObject);
procedure N18Click(Sender: TObject); procedure N19Click(Sender: TObject);
procedure N11Click(Sender: TObject); procedure N13Click(Sender: TObject);
procedure N2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
procedure N20Click(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure SpeedButton13Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton14Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
CheckEvent: TEvent; Form1: TForm1; dir:string; kolok:integer;
prof,spak,mon,got:string;fiozam,fiozak,adres,data,itog,domtel,sottel:string;
implementation
uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit10, Unit12,
Unit15;
{$R *.dfm}
procedure TForm1.N5Click(Sender: TObject);
begin form2.Showmodal end;
procedure TForm1.N16Click(Sender: TObject);
begin form3.Showmodal end;
procedure TForm1.N17Click(Sender: TObject);
begin form4.Showmodal end;
procedure TForm1.N7Click(Sender: TObject);
var dlg:Word; begin
dlg:=MessageDlg('Вы
точно хотите выйти???',mtConfirmation,mbYesNoCancel,0);
if dlg = mrYes then close; end;
procedure TForm1.N9Click(Sender: TObject);
begin form6.Showmodal; end;
procedure TForm1.N10Click(Sender: TObject);
begin form7.Showmodal; end;
procedure TForm1.N3Click(Sender: TObject);
begin Form1.PrintDialog1.Execute; end;
procedure TForm1.N18Click(Sender: TObject);
begin if Form1.SaveDialog1.Execute then
RichEdit1.Lines.SaveToFile(SaveDialog1.FileName); end;
procedure TForm1.N19Click(Sender: TObject);
begin if form1.OpenDialog1.Execute then
RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName); end;
procedure TForm1.N11Click(Sender: TObject);
begin form9.Showmodal; end;
procedure TForm1.N13Click(Sender: TObject);
begin form12.Showmodal; end;
procedure TForm1.N2Click(Sender: TObject);
begin form11.Show; end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin RichEdit1.Paragraph.Alignment:=taLeftJustify; end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin RichEdit1.Paragraph.Alignment:=taRightJustify; end;
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin if FontDialog1.Execute then
RichEdit1.SelAttributes.Assign(FontDialog1.Font);
RichEdit1.SetFocus; end;
procedure TForm1.SpeedButton7Click(Sender: TObject);
begin if Form1.SaveDialog1.Execute then
RichEdit1.Lines.SaveToFile(SaveDialog1.FileName); end;
procedure TForm1.SpeedButton6Click(Sender: TObject);
begin if form1.OpenDialog1.Execute then
RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName); end;
procedure TForm1.SpeedButton5Click(Sender: TObject);
var f: Integer;
begin for f := 0 to ComponentCount - 1 do begin
if (Components[f] is TEdit) then (Components[f] as TEdit).Text := '';
if (Components[f] is TMaskEdit) then (Components[f] as TMaskEdit).Text := '';
if (Components[f] is TMemo) then (Components[f] as TMemo).Text := '';end;
RichEdit1.Clear;
prof:='';spak:='';mon:='';got:=''; got:='';adres:='';fiozam:='';fiozak:='';
Showmessage('Введите все данные по заказу!'); end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin RichEdit1.Paragraph.Alignment:=taCenter;end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin Label5.Caption:= 'Дата ' + dateToStr(date);
Label11.Caption:='Номер заказа: '+ intToStr(nzak);
Label9.Caption:= 'Время ' + TimeToStr(Time); end;
procedure TForm1.SpeedButton11Click(Sender: TObject);
begin if (Edit1.Text='')or(Edit2.Text='')or(Memo1.Text='')
then showmessage('Не введены обязательные параметры!')
else if (MaskEdit3.Text=' - - ') and (MaskEdit2.Text='(8) ')then
showmessage('Введите хотя бы один номер телефона!') else
begin fiozam:=Edit1.Text; fiozak:=Edit2.Text;
adres:=Memo1.Text; domtel:=MaskEdit3.Text;
sottel:=MaskEdit2.Text; data:=datetostr(DateTimePicker1.Date);
got:=memo4.Text; Form7.Showmodal; end; end;
procedure TForm1.N20Click(Sender: TObject);
begin form5.Showmodal; end;
procedure TForm1.FormCreate(Sender: TObject);
var f:textfile;s:string;
begin CheckEvent := TEvent.Create(nil, false, true, 'MYPROGRAM_CHECKEXIST');
if CheckEvent.WaitFor(10) <> wrSignaled then
begin Showmessage('Программа уже запущена!');
Self.Close; halt; end;
DateTimePicker1.Date:=Date; odn:='';
dir:=ExtractFilePath(Application.ExeName);
AssignFile(f,dir+'\nzak.txt');
Reset(f); Read(f,s); nzak:=StrToInt(s); CloseFile(f); end;
function Search_And_Replace(RichEdit: TRichEdit;
SearchText, ReplaceText: string): Boolean;
var startpos, Position, endpos: integer;
begin startpos := 0;
with RichEdit do begin endpos := Length(RichEdit.Text);
Lines.BeginUpdate;
while FindText(SearchText, startpos, endpos, [stMatchCase])<>-1 do
begin endpos := Length(RichEdit.Text) - startpos;
Position := FindText(SearchText, startpos, endpos, [stMatchCase]);
Inc(startpos, Length(SearchText)); SetFocus; SelStart := Position;
SelLength := Length(SearchText); richedit.clearselection;
SelText := ReplaceText; end;
Lines.EndUpdate; end; end;
procedure TForm1.SpeedButton13Click(Sender: TObject);
Var b,a:string; begin
if (fiozam='')or(fiozak='')or(adres='')
then showmessage('Не введены обязательные параметры!') else
if prof='' then Showmessage('Введите информацию о заказе!')else
begin RichEdit1.Lines.LoadFromFile(dir+'\Отчеты\ЕвроДом.rtf');
Search_And_Replace(Richedit1, '№1',prof );
Search_And_Replace(Richedit1, '№2',spak);
Search_And_Replace(Richedit1, '№4',mon);
Search_And_Replace(Richedit1, '№3',got );
if (SOB='')and(Lam='')and(So9='') then b:=''
else if (SOB='')or(Lam='')or(So9='') then begin
if SOB='' then b:=Lam+'; '+So9+'; '+ton;
if Lam='' then b:=SOB+'; '+So9+'; '+ton;
if So9='' then b:=SOB+'; '+Lam+'; '+ton;
if (Lam='')and(So9='') then b:=SOB+'; '+ton end
else b:=SOB+'; '+Lam+'; '+So9+'; '+ton;
Search_And_Replace(Richedit1, '#B',b);
a:=MarkP+'('+RazPod+')'+Podsen+'у.е';
if a='()у.е' then a:='';
Search_And_Replace(Richedit1, '#A',a );
if sottel='(8) ' then
Search_And_Replace(Richedit1, '#6',' ')
else
Search_And_Replace(Richedit1, '#6',sottel);
Search_And_Replace(Richedit1, '#C',itog);
Search_And_Replace(Richedit1, '#5',domtel);
Search_And_Replace(Richedit1, '#1',fiozam );
Search_And_Replace(Richedit1, '#2',data);
Search_And_Replace(Richedit1, '#3',fiozak );
Search_And_Replace(Richedit1, '#4',adres );
end; end;
procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
RichEdit1.Perform(EM_UNDO, 0, 0);end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var //цифровая маска
vrLength, vrSelStart: byte;
begin
with Sender as TEdit do begin
vrLength := Length(Text); //определяем длину текста
vrSelStart := SelStart; //определяем положение курсора
end;
case Key of 'А'..'Я':begin end;
'а'..'я':begin end;
#8:begin end;
#32:begin end;
#46:
else
Key := #0; //"погасить" все остальные клавиши
end;end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
var //цифровая маска
vrLength, vrSelStart: byte;
begin
with Sender as TEdit do
begin
vrLength := Length(Text);
vrSelStart := SelStart;
end;
case Key of 'А'..'Я':begin end;
'а'..'я':begin end;
#8:begin end;
#32:begin end;
#46:
else
Key := #0; //"погасить" все остальные клавиши end;end;
procedure TForm1.SpeedButton8Click(Sender: TObject);
begin RichEdit1.Print('Печать отчета'); end;
procedure TForm1.SpeedButton14Click(Sender: TObject);
begin if RichEdit1.Text<>'' then begin
form10.qrimage1.Picture.LoadFromFile(dir+'\temp\'+'1.bmp');
form10.qrimage2.Picture.LoadFromFile(dir+'\temp\'+'2.bmp');
form10.qrimage3.Picture.LoadFromFile(dir+'\temp\'+'3.bmp');