Описание программы
Программа «Решение задач о замене оборудования» предназначена для предприятий, занимающихся каким-либо родом деятельности, требующего использования определенного оборудования. В силу ряда причин, оборудование изнашивается физически, т.е. ломается и не подлежит ремонту или возникают такие неисправности, при которых проще купить новое оборудование, чем ремонтировать старое, либо изнашивается морально, т.е. темпы роста экономического развития отрасли производства этого оборудования очень велики. Таким образом, для того, чтобы «производство продукции» на таком оборудовании достигало максимального эффекта, его необходимо периодически менять. Эта программа подсчитывает количество лет, через которое нужно сменить оборудование, чтобы получить максимальную прибыль.
Для разработки программы «Решение задач о замене оборудования» был использован язык программирования Delphi 6. В настоящее время эта среда объектно-ориентированного программирования очень популярна, ее основой является язык Object Pascal. Она позволяет создавать приложения различной степени сложности - от простейших программ до профессиональных, предназначенных для работы с базами данных. Кроме того, помощь по программе оформлена в виде HTML-страниц с помощью программы Arachnophilia.
Вся работа с программой основана на работе с меню, с его описанием можно ознакомиться в пункте меню Помощь/Содержание/Работа с меню.
Данная программа создана при выполнении курсового проекта по предмету «Математические методы», на данную тему.
Порядок установки
Для установки программы требуются следующие минимальные технические
характеристики:
Процессор 300 MHz
Оперативная память 16 Mb
Объем свободного места на жестком диске 3 Mb
Разрешение экрана не менее 800x600
Операционная система Windows
Если компьютер пользователя имеет данные технические характеристики, то программа будет работать без сбоев.
Установка программы
Для начала процесса установки требуется распаковать архив с программой . Для запуска с компакт диска требуется:
Вставить компакт диск в привод CD-ROM;
Открыть для просмотра содержимое компакт диска;
Распаковать архив в свою папку и запустить 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.
Рецензия