Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
13084.rtf
Скачиваний:
4
Добавлен:
16.07.2019
Размер:
7.81 Mб
Скачать

Описание программы

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

Для разработки программы «Решение задач о замене оборудования» был использован язык программирования Delphi 6. В настоящее время эта среда объектно-ориентированного программирования очень популярна, ее основой является язык Object Pascal. Она позволяет создавать приложения различной степени сложности - от простейших программ до профессиональных, предназначенных для работы с базами данных. Кроме того, помощь по программе оформлена в виде HTML-страниц с помощью программы Arachnophilia.

Вся работа с программой основана на работе с меню, с его описанием можно ознакомиться в пункте меню Помощь/Содержание/Работа с меню.

Данная программа создана при выполнении курсового проекта по предмету «Математические методы», на данную тему.

Порядок установки

Для установки программы требуются следующие минимальные технические

характеристики:

Процессор 300 MHz

Оперативная память 16 Mb

Объем свободного места на жестком диске 3 Mb

Разрешение экрана не менее 800x600

Операционная система Windows

Если компьютер пользователя имеет данные технические характеристики, то программа будет работать без сбоев.

Установка программы

Для начала процесса установки требуется распаковать архив с программой . Для запуска с компакт диска требуется:

  1. Вставить компакт диск в привод CD-ROM;

  2. Открыть для просмотра содержимое компакт диска;

  3. Распаковать архив в свою папку и запустить Project.exe после этого можно начать работу с программой.

Структурное содержание меню программы

В корневом каталоге программы содержатся следующие файлы и подкаталоги:

  • Projectl .exe - Файл программы;

  • Программное меню

1 .Новый

2.Открыть

3.Сохранить

4.Закрыть

5.Выход

• Операции

1.Оптимизация

2.Расчет

• Визуализация

1.Сетка

• Отчёт

1.Сохранить

2.Редактор

• Помощь

1 .Справка 2.Содержание

3.О программе...

Завершение работы программы

Завершить работу с программой можно в любой момент времени. При завершении работы программы, будет предложено подтверждение завершения работы программы. В этом диалоговом окне пользователь может продолжить работать с программой, либо отказаться от продолжения и выйти.

Список используемой литературы

1. Калихман И.Л., Войтенко М.А. Динамическое программирование в примерах и задачах: Учеб. пособие. – М.:Высш.шк., 1979-125с.,ил.

2. Хазанова Л.Э. Математическое моделирование в экономике:

Учебное пособие.- М.:Издательство БЕК,1998-141с.

3. Экономико-математические методы и модели: учебное пособие Н. И. Холод, А. В. Кузнецов, Я.Н. Жихар и другие; Под общей редакцией А. В. Кузнецова. 2-е издание - Мн.: БГЭУ, 2000.-412с.

4. «Компьютер для менеджера» Вершинин О. Е. учебное пособие для экон. спец. вузов. -М.:высш. Шк., 1990.- 240 с.:ил. Изд «Москва» 1990 год.

Приложение А, формы программы.

Приложение В, листинг программы.

Код первой формы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Grids, StdCtrls, ExtCtrls, Menus, ComCtrls, ToolWin, ImgList, jpeg;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

StringGrid4: TStringGrid;

StringGrid5: TStringGrid;

Label2: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

N20: TMenuItem;

N21: TMenuItem;

SaveDialog1: TSaveDialog;

OpenDialog1: TOpenDialog;

GroupBox1: TGroupBox;

Label1: TLabel;

Label3: TLabel;

Edit1: TEdit;

Edit2: TEdit;

ImageList1: TImageList;

N22: TMenuItem;

N9: TMenuItem;

N24: TMenuItem;

N25: TMenuItem;

N26: TMenuItem;

StringGrid6: TStringGrid;

StringGrid7: TStringGrid;

procedure FormCreate(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N22Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure Edit1Exit(Sender: TObject);

procedure Edit2Exit(Sender: TObject);

procedure StringGrid3KeyPress(Sender: TObject; var Key: Char);

procedure N26Click(Sender: TObject);

procedure N25Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

keyo:Boolean;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6;

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

StringGrid7.Options:=StringGrid3.Options;

Groupbox1.Visible:=False;

Label1.Visible:=False;

Edit1.Visible:=False;

Label2.Visible:=False;

Edit2.Visible:=False;

N16.Enabled:=False;

N17.Enabled:=False;

N25.Enabled:=False;

N13.Enabled:=False;

N4.Enabled:=False;

N5.Enabled:=False;

N22.Enabled:=False;

End;

procedure TForm1.N14Click(Sender: TObject);

begin

If MessageDlg('Закончить работу с программой?',mtConfirmation,[mbYes,mbNo],0)=mrYes then

Halt(0);

end;

procedure TForm1.N12Click(Sender: TObject);

Begin

keyo:=True;

StringGrid1.Options:=StringGrid7.Options;

StringGrid2.Options:=StringGrid7.Options;

StringGrid3.Options:=StringGrid7.Options;

StringGrid4.Options:=StringGrid7.Options;

StringGrid5.Options:=StringGrid7.Options;

StringGrid1.Color:=clmenu;

StringGrid2.Color:=clmenu;

StringGrid3.Color:=clmenu;

Groupbox1.Visible:=True;

Label1.Visible:=True;

Label2.Visible:=True;

Label3.Visible:=True;

Edit2.Visible:=True;

Edit1.Visible:=True;

Edit1.SetFocus;

N12.Enabled:=False;

End;

procedure TForm1.N17Click(Sender: TObject);

Var

d,er,x,i,j,n,y,y1,y2,m,z,P,o,w,zero,q:integer;

begin

keyo:=false;

n:=StrToInt(Edit1.Text);

P:=StrToInt(Edit2.Text);

m:=0;

StringGrid1.RowCount:=3;

StringGrid3.RowCount:=2;

StringGrid4.Hide;

StringGrid5.Hide;

For i:=0 to n do

For j:=0 to n do

Begin

x:=StrToInt(StringGrid3.Cells[j,0])-StrToInt(StringGrid3.Cells[j,1]);

StringGrid3.Cells[j,2]:=IntToStr(x);

StringGrid1.Height:=((n+1)*25)+i;

StringGrid1.Cells[0,4]:='f'+IntToStr(n)+'(t)';

StringGrid3.Height:=3*25;

StringGrid4.Cells[0,i]:='f'+IntToStr((n-1)-i)+'(t)';

StringGrid4.Colcount:=2;

StringGrid4.Width:=2*41;

StringGrid4.Rowcount:=n-1;

StringGrid4.Height:=(n*25)+i;

StringGrid5.Colcount:=n+1;

StringGrid5.Width:=((n+1)*41)+i;

StringGrid5.Rowcount:=n;

StringGrid5.Height:=(n*25)+i;

StringGrid5.Cells[j,0]:=StringGrid3.Cells[j,2];

o:=StrToInt(StringGrid3.Cells[0,2])-P;

StringGrid5.Cells[0,0]:=IntToStr(o);

StringGrid5.Cells[n,0]:='';

End;

// Основные расчеты

For j:=0 to n-2 do

Begin

If StrToInt(StringGrid5.Cells[j+1,0])<StrToInt(StringGrid5.Cells[0,0]) then

StringGrid5.Cells[j+1,0]:=StringGrid5.Cells[0,0];

q:=StrToInt(StringGrid5.Cells[1,0])+StrToInt(StringGrid5.Cells[0,0]);

StringGrid5.Cells[0,1]:=IntToStr(q);

y:=StrToInt(StringGrid5.Cells[j+1,0])+StrToInt(StringGrid3.Cells[j,2]);

StringGrid5.Cells[j,1]:=IntToStr(y);

If y<StrToInt(StringGrid5.Cells[0,1]) then

StringGrid5.Cells[j,1]:=StringGrid5.Cells[0,1];

End;

// Далее

For i:=2 to n-2 do

For j:=0 to (n-1)-i do

Begin

w:=StrToInt(StringGrid5.Cells[1,i-1])+StrToInt(StringGrid5.Cells[0,0]);

StringGrid5.Cells[0,i]:=IntToStr(w);

y1:=StrToInt(StringGrid5.Cells[j+1,i-1])+StrToInt(StringGrid3.Cells[j,2]);

StringGrid5.Cells[j,i]:=IntToStr(y1);

If y1<StrToInt(StringGrid5.Cells[0,i]) then

StringGrid5.Cells[j,i]:=StringGrid5.Cells[0,i];

End;

y2:=StrToInt(StringGrid5.Cells[1,n-2])+StrToInt(StringGrid5.Cells[0,0]);

StringGrid5.Cells[0,n-1]:=IntToStr(y2);

// Подсчет количества лет

For i:=n-2 downto 1 do

Begin

er:=StrToInt(StringGrid5.Cells[0,i-1]);

z:=StrToInt(StringGrid5.Cells[0,i]);

If er<>StrToInt(StringGrid5.Cells[n-i,i-1]) then

Begin

If z<>StrToInt(StringGrid5.Cells[n-1-i,i]) then m:=m+1;

End;

End;

// Error

zero:=StrToInt(StringGrid5.Cells[0,0]);

If zero<0 then

Begin

MessageDlg('Неверно введены параметры. Повторите ввод.',mtError,[MbOk],0);

For i:=0 to n do

For j:=0 to n do

Begin

StringGrid3.Cells[j,i]:='';

StringGrid5.Cells[j,i]:='';

End;

StringGrid3.RowCount:=2;

N22.Checked:=False;

StringGrid1.Height:=0;

StringGrid1.Width:=0;

StringGrid2.Height:=0;

StringGrid2.Width:=0;

StringGrid3.Height:=0;

StringGrid3.Width:=0;

StringGrid4.Height:=0;

StringGrid4.Width:=0;

StringGrid5.Height:=0;

StringGrid5.Width:=0;

Edit1.Text:='';

Edit2.Text:='';

N17.Enabled:=False;

N13.Enabled:=False;

N5.Enabled:=False;

N22.Enabled:=False;

N25.Enabled:=False;

N4.Enabled:=False;

N16.Enabled:=False;

Label2.Caption:='';

Edit1.SetFocus;

End

else

Begin

Label2.Caption:='';

Label2.Font.Color:=clTeal;

Label2.Font.Size:=14;

If Stringgrid5.Cells[0,n-2]=StringGrid5.Cells[1,n-2] then d:=m+1

else d:=m+2;

Label2.Caption:='Чтобы получить максимальную прибыль, оборудование нужно сменить через '+IntToStr(d)+' года (год/лет).';

N16.Enabled:=False;

N17.Enabled:=False;

N25.Enabled:=True;

N13.Enabled:=True;

StringGrid1.Options:=StringGrid6.Options;

StringGrid2.Options:=StringGrid6.Options;

StringGrid3.Options:=StringGrid6.Options;

StringGrid4.Options:=StringGrid6.Options;

StringGrid5.Options:=StringGrid6.Options;

StringGrid1.Color:=clActiveBorder;

StringGrid2.Color:=clActiveBorder;

StringGrid3.Color:=clActiveBorder;

If n<=3 then

Begin

N22.Enabled:=False;

End

else

Begin

If MessageDlg('Показать расчеты ?'+#10#13, MtConfirmation, [mbYes, mbNo],0)=mrYes then

Begin

N22.Enabled:=true;

StringGrid1.RowCount:=5;

StringGrid3.RowCount:=3;

StringGrid4.Show;

StringGrid5.Show;

End

Else

Begin

N22.Enabled:=true;

End;

End;

End;

end;

procedure TForm1.N13Click(Sender: TObject);

var

f:System.Text;

i,j:integer;

begin

SaveDialog1.Filter:='Файлы задачи о замене оборудования (*.zzo)|*.zzo';

If SaveDialog1.Execute then Begin

AssignFile(f, SaveDialog1.FileName);

Rewrite(F);

For i:=0 to 1 do

For j:=0 to StringGrid3.ColCount+1 do

Begin

Write (f, StringGrid3.Cells[j,i]);

End;

Closefile(f);

End;

end;

procedure TForm1.N5Click(Sender: TObject);

Var

i,j,n:integer;

f:System.Text;

Label VIC;

begin

n:=StrToInt(Edit1.Text);

If MessageDlg('Сохранить файл ?'+#10#13, MtConfirmation, [mbYes, mbNo],0)=mrYes then

Begin

SaveDialog1.Filter:='Файлы задачи о замене оборудования (*.zzo)|*.zzo';

If SaveDialog1.Execute then

Begin

AssignFile(f, SaveDialog1.FileName);

Rewrite(F);

For i:=0 to 1 do

For j:=0 to StringGrid3.ColCount+1 do

Begin

Writeln (f, StringGrid3.Cells[j,i]);

End;

Closefile(f);

End;

VIC:For i:=0 to n do

For j:=0 to n do

Begin

StringGrid3.Cells[j,i]:='';

StringGrid5.Cells[j,i]:='';

End;

StringGrid3.RowCount:=2;

N22.Checked:=False;

N25.Enabled:=False;

Label2.Caption:='';

StringGrid1.Height:=0;

StringGrid1.Width:=0;

StringGrid2.Height:=0;

StringGrid2.Width:=0;

StringGrid3.Height:=0;

StringGrid3.Width:=0;

StringGrid4.Height:=0;

StringGrid4.Width:=0;

StringGrid5.Height:=0;

StringGrid5.Width:=0;

GroupBox1.Visible:=False;

Label1.Visible:=False;

Label2.Visible:=False;

Label3.Visible:=False;

Edit1.Text:='';

Edit2.Text:='';

N16.Enabled:=False;

N17.Enabled:=False;

N12.Enabled:=True;

N13.Enabled:=False;

N5.Enabled:=False;

N22.Enabled:=False;

N4.Enabled:=False;

End

Else

goto VIC;

end;

procedure TForm1.N16Click(Sender: TObject);

Var

i,j,n:integer;

begin

n:=StrToInt(Edit1.Text);

StringGrid1.Cells[0,0]:='Годы';

StringGrid1.Cells[0,1]:='R(t)';

StringGrid1.Cells[0,2]:='L(t)';

StringGrid1.Cells[0,3]:='R-L';

For i:=0 to n do

For j:=0 to n do

Begin

StringGrid2.ColCount:=n+1;

StringGrid2.Width:=((n+1)*48)+i;

StringGrid2.RowCount:=3;

StringGrid2.Height:=27*3;

StringGrid3.ColCount:=n+1;

StringGrid3.Width:=((n+1)*48)+i;

StringGrid2.Cells[j,0]:=IntToStr(j);

End;

StringGrid3.Height:=2*27;

StringGrid1.ColCount:=2;

StringGrid1.Width:=2*48;

StringGrid1.RowCount:=3;

StringGrid1.Height:=3*27;

N17.Enabled:=True;

StringGrid3.SetFocus;

N5.Enabled:=True;

N4.Enabled:=True;

Label2.Caption:='';

End;

procedure TForm1.N22Click(Sender: TObject);

begin

If N22.Checked then

Begin

N22.Checked:=false;

StringGrid1.RowCount:=3;

StringGrid3.RowCount:=2;

StringGrid4.Hide;

StringGrid5.Hide;

End

else

Begin

N22.Checked:=true;

StringGrid1.RowCount:=5;

StringGrid3.RowCount:=3;

StringGrid4.Show;

StringGrid5.Show;

End;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

Form3.Show;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

AboutBox.ShowModal;

end;

procedure TForm1.N4Click(Sender: TObject);

var

f:Textfile;

i,j:integer;

t:string;

Begin

OpenDialog1.Filter:='Файлы задачи о замене оборудования *.zzo';

If OpenDialog1.Execute then

Begin

AssignFile(f,OpenDialog1.FileName);

Reset(f);

While Not Eof(f) do

Begin

For i:=0 to StringGrid3.RowCount+1 do

For j:=0 to StringGrid3.ColCount+1 do

Begin

Readln(f,t);

StringGrid3.Cells[j,i]:=t;

End;

End;

CloseFile(f);

End;

End;

procedure TForm1.N9Click(Sender: TObject);

begin

Form5.Show;

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

If (Key<'0') or(Key>'9') then Key:=#0;

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

If (Key<'0') or(Key>'9') then Key:=#0;

N16.Enabled:=True;

Label2.Font.Color:=clBlue;

Label2.Font.Size:=12;

Label2.Caption:='Для продолжения нажмите клавишу F8, либо воспользуйтесь пунктом меню ОПЕРАЦИИ\ОПТИМИЗАЦИЯ.';

end;

procedure TForm1.Edit1Exit(Sender: TObject);

begin

If Edit1.Text='' then

Begin

MessageDlg('Должно быть введено какое-либо значение!',mtError,[mbOK],0);

Edit1.SetFocus;

End;

end;

procedure TForm1.Edit2Exit(Sender: TObject);

begin

If Edit2.Text='' then

Begin

MessageDlg('Должно быть введено какое-либо значение!',mtError,[mbOK],0);

Edit2.SetFocus;

End;

end;

procedure TForm1.StringGrid3KeyPress(Sender: TObject; var Key: Char);

Var

n:Integer;

begin

If (Key<'0') or(Key>'9') then Key:=#0;

n:=StrToInt(Edit1.Text);

If (StringGrid3.Cells[n,1]<>'')and(keyo) then

Begin

Label2.Font.Color:=clBlue;

Label2.Font.Size:=12;

Label2.Caption:='Чтобы увидеть результат нажмите кнопку F9, либо выберите пункт меню ОПЕРАЦИИ\РАСЧЕТ.';

End;

end;

procedure TForm1.N26Click(Sender: TObject);

begin

Form6.Show;

end;

procedure TForm1.N25Click(Sender: TObject);

var

f:System.Text;

i,j:integer;

g:string;

begin

SaveDialog1.Filter:='Файлы отчета (*.zoo)|*.zoo';

If SaveDialog1.Execute then Begin

AssignFile(f, SaveDialog1.FileName);

Rewrite(F);

g:=InputBox ('Работа с отчетом','Введите заголовок отчета:','');

Writeln(f,g);

Writeln (f);

Write (f,Label1.Caption);

Writeln (f,Edit1.Text);

Write (f,Label3.Caption);

Writeln (f,Edit2.Text);

For i:=0 to 1 do

Begin

Writeln (f);

For j:=0 to StringGrid5.ColCount+1 do

Begin

Write (f, StringGrid3.Cells[j,i],' ');

End;

End;

Writeln (f);

For i:=0 to StringGrid5.RowCount+1 do

Begin

Writeln (f);

For j:=0 to StringGrid5.ColCount+1 do

Begin

Write (f, StringGrid5.Cells[j,i],' ');

End;

End;

Writeln (f);

Write (f,Label2.Caption);

Closefile(f);

End;

End;

End.

Код второй формы

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, jpeg, ExtCtrls;

type

TForm2 = class(TForm)

Image1: TImage;

Timer1: TTimer;

procedure Timer1Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1, Unit5;

{$R *.DFM}

procedure TForm2.Timer1Timer(Sender: TObject);

begin

Form1.Show;

// Form5.Show;

Form2.Hide;

Timer1.Enabled:=False;

end;

end.

Код третьей формы

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

OleCtrls, SHDocVw, ExtCtrls;

type

TForm3 = class(TForm)

WebBrowser1: TWebBrowser;

Panel1: TPanel;

procedure FormCreate(Sender: TObject);

procedure FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure Panel1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.DFM}

procedure TForm3.FormCreate(Sender: TObject);

begin

Webbrowser1.Navigate(ExtractFilePath(Application.EXEName) + 'Help\Index.htm');

end;

procedure TForm3.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if key = VK_Escape then Form3.Hide;

end;

procedure TForm3.Panel1Click(Sender: TObject);

begin

Form3.Hide;

end;

end.

Код четвертой формы

unit Unit4;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,

Buttons, ExtCtrls;

type

TAboutBox = class(TForm)

Panel1: TPanel;

Copyright: TLabel;

OKButton: TButton;

ProductName: TLabel;

Label1: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

AboutBox: TAboutBox;

implementation

{$R *.DFM}

end.

Код пятой формы

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

OleCtrls, SHDocVw, StdCtrls, Buttons;

type

TForm5 = class(TForm)

WebBrowser1: TWebBrowser;

BitBtn1: TBitBtn;

procedure FormCreate(Sender: TObject);

procedure FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses Unit3;

{$R *.DFM}

procedure TForm5.FormCreate(Sender: TObject);

begin

Webbrowser1.Navigate(ExtractFilePath(Application.EXEName) + 'Help\Tip.htm');

end;

procedure TForm5.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if key = VK_Escape then Form5.Hide;

end;

procedure TForm5.BitBtn1Click(Sender: TObject);

begin

Close;

end;

end.

Код шестой формы

unit Unit6;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Buttons, Printers;

type

TForm6 = class(TForm)

OpenDialog1: TOpenDialog;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

PrintDialog1: TPrintDialog;

Memo1: TMemo;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

{$R *.DFM}

procedure TForm6.BitBtn1Click(Sender: TObject);

var

f:Textfile;

t:string;

Begin

Memo1.Lines.Clear;

OpenDialog1.Filter:='Файлы отчета (*.zoo)|*.zoo';

If OpenDialog1.Execute then

Begin

AssignFile(f,OpenDialog1.FileName);

Reset(f);

While Not Eof(f) do

Begin

Readln(f,t);

Memo1.Lines.Add(t);

End;

CloseFile(f);

End;

end;

procedure TForm6.BitBtn3Click(Sender: TObject);

begin

Close;

end;

procedure TForm6.FormShow(Sender: TObject);

begin

Memo1.Lines.Clear;

end;

procedure TForm6.BitBtn2Click(Sender: TObject);

Var

i,x,y:longint;

begin

If PrintDialog1.Execute then

Begin

Printer.Canvas.Font:=Memo1.Font;

Printer.BeginDoc;

x:=0;

y:=0;

For i:=0 to Memo1.Lines.Count-1 do

Begin

Printer.Canvas.TextOut(x,y,Memo1.Lines[i]);

y:=y+Printer.Canvas.TextExtent(Memo1.Lines[i]).cy;

End;

Printer.EndDoc;

End;

end;

end.

Рецензия