8 - Приложение (1094734)
Текст из файла
Приложение А
(обязательное)
Тема: Конвертор для повышения эффективности перепрограммирования станков с ЧПУ
Текст программы
Всего листов - 30
2011
Файл Project1.dpr
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {AboutBox},
Unit5 in 'Unit5.pas' {Form5},
Unit6 in 'Unit6.pas' {Form6};
{$R *.res}
begin
Application.Initialize;
Application.Title := 'Наладчик 1.6.1';
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Form1.Label3.Caption:= 'Всего строк';
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TAboutBox, AboutBox);
Application.Run;
end.
Файл Unit1.pas
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, ExtCtrls, ToolWin, ComCtrls, ImgList, Printers,
DBCtrls, Registry, IniFiles;
type
TForm1 = class(TForm)
memo1: TMemo;
MainMenu1: TMainMenu;
OpenDialog1: TOpenDialog;
FontDialog1: TFontDialog;
PrinterSetupDialog1: TPrinterSetupDialog;
PrintDialog1: TPrintDialog;
fayl: TMenuItem;
Nastroyki: TMenuItem;
fond: TMenuItem;
Printery: TMenuItem;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ImageList1: TImageList;
Parametry: TMenuItem;
ToolButton2: TToolButton;
SaveDialog1: TSaveDialog;
ToolButton3: TToolButton;
Label1: TLabel;
Help: TMenuItem;
Versia: TMenuItem;
Vyhod: TMenuItem;
Save: TMenuItem;
Open: TMenuItem;
Print: TMenuItem;
ToolButton4: TToolButton;
ToolButton6: TToolButton;
NomerKadra: TCheckBox;
Probel: TCheckBox;
Pustostr: TCheckBox;
PanelSostoyaniya: TStatusBar;
Indikator: TProgressBar;
ToolButton9: TToolButton;
ReplaceDialog1: TReplaceDialog;
Cancel: TButton;
Obrabotka: TButton;
Label2: TLabel;
Label3: TLabel;
Panel1: TPanel;
Panel2: TPanel;
ToolButton5: TToolButton;
ToolButton8: TToolButton;
procedure ButPrinterClick(Sender: TObject);
procedure ButPechatClick(Sender: TObject);
procedure fondClick(Sender: TObject);
procedure PrinteryClick(Sender: TObject);
procedure PechatClick(Sender: TObject);
procedure ButParametrClick(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ParametryClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure VersiaClick(Sender: TObject);
procedure VyhodClick(Sender: TObject);
procedure SaveClick(Sender: TObject);
procedure OpenClick(Sender: TObject);
procedure PrintClick(Sender: TObject);
procedure CancelClick(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton9Click(Sender: TObject);
procedure ReplaceDialog1Replace(Sender: TObject);
procedure ObrabotkaClick(Sender: TObject);
procedure memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
st = ' Параметры: '; // текст в строке состояния + в модуле 2
Code_Begin = 100;
var
Form1: TForm1;
Code_My, nach, oshibka, m, uslovie: Integer;
Code_Reg: longint;
proverka_sushesvovania_ini: byte;
reestra, reestrc, reestrb, reestrMy_Code, reestrReg_Code: integer;
reestrversia: string[20];
nach_period, Hac: integer;
Stroka: TStrings;
memo1mod: boolean;
I, J, I_sled, J_sled: real;
X_nast, X_pred, X_sled, Y_nast, Y_pred, Y_sled: real;
Z, A, Uvmmayak, K : real;
implementation
uses Unit2, Unit3, Unit5;
{$R *.dfm}
procedure TForm1.ButPrinterClick(Sender: TObject);
begin
PrinterSetupDialog1.Execute
end;
procedure TForm1.ButPechatClick(Sender: TObject);
begin
PrintDialog1.Execute
end;
procedure TForm1.FondClick(Sender: TObject);
begin
if FontDialog1.Execute then
Memo1.Font:= FontDialog1.Font;
end;
procedure TForm1.PrinteryClick(Sender: TObject);
begin
PrinterSetupDialog1.Execute
end;
procedure TForm1.PechatClick(Sender: TObject);
begin
ToolButton3Click(Sender);
end;
procedure TForm1.ButParametrClick(Sender: TObject);
begin
Form2.ShowModal;
end;
Procedure TForm1.FormResize( Sender: TObject); // Изменение размера формы
begin
Memo1.Left:= 10; // Положение слева
Memo1.Top:= 60; // Положение сверху
Memo1.Width:= Form1.ClientWidth-130; // Ширина
Memo1.Height:= Form1.ClientHeight-100; // Высота
NomerKadra.Left:= Form1.ClientWidth-15-NomerKadra.Width;
Probel.Left:= Form1.ClientWidth-15-Probel.Width;
Pustostr.Left:= Form1.ClientWidth-15-Pustostr.Width;
Cancel.Left:= Form1.ClientWidth-20-Cancel.Width;
Obrabotka.Left:= Form1.ClientWidth-20-Obrabotka.Width;
Label2.Left:= Form1.ClientWidth-40-Cancel.Width;
Label3.Left:= Form1.ClientWidth-40-Cancel.Width;
Panel1.Left:= Form1.ClientWidth-18-Panel1.Width;
Panel2.Left:= Form1.ClientWidth-18-Panel2.Width;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Memo1mod then // Если поле Мемо1 изменилось
begin
CanClose:= MessageDlg(' Содержимое редактора изменилось '#10#13' Хотите сохранить данные?', mtConfirmation,[mbYes, mbNo], 0) = mrYes;
if CanClose then ToolButton2Click(Sender);
CanClose:= true;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
const
Reg_Code = 1234567890;
My_Code = 469103;
var
RegIni: TRegistry;
Ini: TIniFile;
data: TDatetime;
begin
DateSeparator:= '.';
DecimalSeparator:= '.';
ShortDateFormat:= 'dd/mm/yyyy';
memo1mod:= false;
reestrMy_Code:= 0;
reestrReg_Code:= 0;
data:= Date; // получаем сегодняшнюю дату
nach_period:= Trunc(data);
Ini:= TIniFile.Create('Nal.ini');
proverka_sushesvovania_ini:= Ini.ReadInteger('START', 'CountStart', 0);
if proverka_sushesvovania_ini = 0 then
begin
ini.WriteInteger('START', 'CountStart', 1);
ini.WriteDate('DateBegin', 'DateBegin', data); //в формате дд.мм.гггг
ini.WriteDate('DateEnd', 'DateEnd', data + 30); //в формате дд.мм.гггг
ini.WriteString('Versia', 'Versia', Application.Title);
ini.WriteInteger('CodeBegin', 'CodeBegin', Code_Begin);
ini.WriteInteger('Hac','Hac', nach_period);
end
else
begin
Code_My:= ini.ReadInteger('Code_My', 'Code_My', 0);
Code_Reg:= ini.ReadInteger('Code_Reg', 'Code_Reg', 0);
Hac:= Ini.ReadInteger('Hac','Hac',0);
end;
Ini.Free;
Form1.Caption:= Application.Title;
Form1.memo1.Clear;
Form1.PanelSostoyaniya.Panels[0].Text:= st + ' Не обрабатывать ';
Form1.Panel1.Caption:= '0';
Form1.Panel2.Caption:= '0';
RegIni:= TRegistry.Create;
RegIni.RootKey:= HKEY_LOCAL_MACHINE;
RegIni.OpenKey('Software\Naladchik', true);
if not RegIni.KeyExists('a') then // Если нет этого ключа то прописываем.
begin
RegIni.CreateKey('a');
RegIni.WriteInteger('a', 100);
RegIni.WriteString('Versia', Application.Title);
RegIni.WriteInteger('b', nach_period); // в формате 00000
RegIni.WriteInteger('c', nach_period + 30); // в формате 00000
RegIni.CloseKey;
RegIni.Free;
end;
RegIni:= TRegistry.Create;
RegIni.RootKey:= HKEY_LOCAL_MACHINE;
RegIni.OpenKey('Software\Naladchik', false);
reestra:= RegIni.ReadInteger('a');
reestrversia:= RegIni.ReadString('Versia');
reestrb:= RegIni.ReadInteger('b');
reestrc:= RegIni.ReadInteger('c');
if proverka_sushesvovania_ini = 2 then
begin
reestrMy_Code:= RegIni.ReadInteger('d');
reestrReg_Code:= RegIni.ReadInteger('e');
end;
RegIni.CloseKey;
RegIni.Free;
if Hac > nach_period then nach_period:= Hac // защита от перевода даты
else Hac:= nach_period;
Ini:= TIniFile.Create('Nal.ini');
ini.WriteInteger('Hac', 'Hac', Hac);
ini.Free;
// Code_My и Code_Reg из ini файла
if (Code_My = My_Code) and (Code_Reg = Reg_Code) and (reestrMy_Code = My_Code) and (reestrReg_Code = Reg_Code)
then Form1.Caption:= Application.Title + '(Зарегистрированная версия)'
else
begin
if reestrc > nach_period then
Form1.Caption:= Application.Title + ' (Осталось '+IntToStr(reestrc - nach_period)+' дней)';
if reestrc <= nach_period then
begin
ShowMessage('Демонстрационный период закончен' + #13 + 'За регистрацией обратитесь к разработчику'+#13'dimasoft1@mail.ru');
Halt(1);
end;
end;
end;
procedure TForm1.ToolButton1Click(Sender: TObject);
var
kol: integer;
begin
Indikator.Position:= 0;
Form1.PanelSostoyaniya.Panels[1].Text:= '';
Memo1.Clear;
if OpenDialog1.Execute then
begin
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
label1.Caption:= OpenDialog1.FileName;
kol:= Memo1.Lines.Count;
Panel2.Caption:= '0';
Panel1.Caption:= IntToStr(kol - 1);
end;
Form2.PC_VM.Enabled:= true;
Form2.PC_MAYAK.Enabled:= true;
Form2.VM_MAYAK.Enabled:= true;
Form2.MAYAK_VM.Enabled:= true;
Form2.FormActivate(Sender);
end;
procedure TForm1.ParametryClick(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.ToolButton2Click(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
Memo1.Modified:= false;
end;
end;
procedure TForm1.ToolButton3Click(Sender: TObject); // Печать
var
line: System.TextFile;
i: integer;
begin
if PrintDialog1.Execute then
begin
AssignPrn(line);
rewrite(line);
Printer.Canvas.Font:= Memo1.Font;
for i:= 0 to memo1.Lines.Count-1 do writeln(line,' ', Memo1.Lines[i]);
System.CloseFile(line);
end;
end;
procedure TForm1.VersiaClick(Sender: TObject);
begin
AboutBox.ShowModal;
end;
procedure TForm1.VyhodClick(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.SaveClick(Sender: TObject);
begin
ToolButton2Click(Sender);
end;
procedure TForm1.OpenClick(Sender: TObject);
begin
ToolButton1Click(Sender);
end;
procedure TForm1.PrintClick(Sender: TObject);
begin
ToolButton3Click(Sender);
end;
procedure TForm1.CancelClick(Sender: TObject);
begin
Form1.Close;
end;
procedure NaytiKoordinatu(kadr: string; koordinata: char; var poluchenaya: string);
var
p : integer;
poz_10: string[100];
per : string[10];
r: real;
begin
per:=' ';
kadr:= Concat(kadr, ' ');
nach:= pos(koordinata,kadr);
nach:= Succ(nach);
poz_10:= copy(kadr, nach, 100);
val(poz_10,r,oshibka);
for p:=1 to oshibka - 1 do
per[p]:= poz_10[p];
if poz_10 = ' ' then oshibka:= 1;
poluchenaya:= TrimRight(per);
end;
function DobavitTochku( f: string): string; // Добавляет точку, если её нет
begin
if pos('.', f) = 0
then f:= Concat(f, '.');
Result:= f;
end;
procedure Podhod_G41_G42_radius;
begin // Х и Y уже найдены
if pos('G3', Stroka.Strings[Succ(m)]) <> 0 then
begin
if (I > 0) and (J >= 0) then
begin
I_sled:= 1;
J_sled:= -1;
exit;
end;
if (I < 0) and (J <= 0) then
begin
I_sled:= -1;
J_sled:= 1;
exit;
end;
if (I <= 0) and (J > 0) then
begin
I_sled:= 1;
J_sled:= 1;
exit;
end;
if (I >= 0) and (J < 0) then
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.