Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

диссертация модальная логика

.pdf
Скачиваний:
17
Добавлен:
25.03.2016
Размер:
8.07 Mб
Скачать

-331 -

Приложение 1

if (OneActive=true)and(ActiveMDIChild=nil) then exit;

//определяем имя создаваемого файла SaveDialogM.InitialDir:=RootDir;

if SaveDialogM.Execute

then NameOfFS :=SaveDialogM.FileName else exit;

SetCurrentDir(RootDh);

//определяем количество сохраняемых диаграмм NumbSave:=0;

if OneActive=true then NumbSave:=l

else for DiagCounter:=0 to MDIChildCount-1 do

if MDIChildren[DiagCounter].WindowState<>wsMinimized then inc(NumbSave);

//открываем создаваемый файл FileSave:=TFileStream.Create(NameOfFS,fmOpenWrite or fhiCreate);

//запоминаем количество сохраняемых диаграмм FileSave.WriteBuffer(NumbSave,sizeof(byte));

//запоминаем диаграммы

NumbOfCur:=0;

CurDiag:=nil;

for DiagCounter:=l to NumbSave do begin

///определяем сохраняемую диаграмму if OneActive=false

then repeat ifMDIChildren[NumbOfCur].WindowState=wsMinimized then inc(NumbOfCur)

else begin CurDiag:=MDIChi]dren[NumbOfCur]; break;

end until false

else CurDiag-ActiveMDIChild;

///запоминаем положение диаграммы

if CurDiag is TForce then

with (CurDiag as TForce).SKoord do

Ang3D01d:=GetAngel3D(AxisXAxisY,AxisZ);

/// определяем строковые данные qwePStr:=stralloc(20); PStrData:=SaveStruct.StrData;

if CurDiag is TForce then

- 332 - Приложение 1

with (CurDiag as TForce) do begin strpcopy(PStrData,NameOfForce); strcat(PStrData,stфcopy(qwePStr,V+EdinOfForce)); end

else stфcopy(PStrData,(CurDiag as TIznos).NameOfForce+V);

/// формируем Save-структуру диаграммы if CurDiag is TForce then

with (CurDiag as TForce), SaveStruct do begin IsForce:=true;

Tkt:=Taktnost;

BegZ-NBeg;

EndZ:=NEnd;

StepZ:=NStep;

Z:=NOfZ;

D:=DCyl;

Prcs:=Precis;

CS:=ColorStyIe;

RA:=RotAng;

Ang3D:=Ang3D01d;

W:=Width;

H:=Height; L-Left; T:=Top;

WS:=WindowState; end {with}

else

with (CurDiag as Tlznos),SaveStruct do begin IsForce "false;

Tkf.=Taktnost;

BegZ:=NObTrack.Min;

EndZ:=NObTrack.Max;

StepZ:=NObTrack.Frequency;

Z:=NOfZ;

D.=DCyl;

chP:=chPolar;

chI:=chIznos;

chF:=chFit;

CurOb:=CurNOb;

Prcs:=Precis;

W:=Width;

- 333 - Приложение 1

H:=Height;

L:=Left;

Т:=Тор;

WS:=WindowState; end; {with}

/// открываем файл-ресурс текущей диаграммы if CurDiag is TForce

then FilePatt:=TFileStream.Create((CurDiag as TForce).SourceFile, fmOpenRead)

else FilePatt:=TFileStream.Create((CurDiag as TIznos).SourceFile, fmOpenRead);

///сохраняем диаграмму Size:=FilePatt.Size; FileSave.WriteBuffer(Size,sizeof(longint)); FileSave.CopyFrom(FilePatt,FilePatt.Size);

FileSave.WriteBuffer(SaveStruct,sizeof(TSaveStruct));

FileSave.WriteBuffer(SaveStruct.StrData,20);

///закрываем файл-ресурс текущей диаграммы FilePatt.Free;

///переходим к следующей диаграмме inc(NumbOfCur);

end; {for DiagCounter:=l to NumbSave} // закрываем созданный файл FileSave.Free;

end; {procedure SavePattern}

procedure TMainFonn.moSelDVSCliclf(Sender: TObject); begin

SelectDVS.ShowModal;

if SelectDVS.BeChange=true then ReadDVS; end;

procedure TMainForm.moSelPatClick(Sender: TObject); begin

NewPatt.ShowModal;

end;

procedure TMainFonn.miCaptionClick(Sender: TObject); begin

if ActiveMDlChildonil then begin

-334-

Приложение1

if ActiveMDIChild is TForce then PatPropF.ShowModal else PatPropI.ShowModal;

end;

end;

procedure TMainForm.miAddBankClick(Sender: TObject); begin

AddToBank.ShowModal;

end;

procedure TMainForrn.rniCloseAllClick(Sender: TObject); var

i: byte; begin i:=0;

while i<=(MDIChildCount-l) do begin MDIChildren[i].Close;

inc(i);

end;

end;

procedure TMainForm.moSaveIssledClick(Sender: TObject); var

faBank, faArch, faDat: TFileStream; Found: integer;

SearchRec: TSearchRec; PStrData: PChar;

Size: longint;

StrData: array [0..8] of char; begin

PStrData:=StrData;

SaveDialogM.InitialDir:='/archiv'; if SaveDialogM.Execute

then faArch:=TFileStream.Create(SaveDialogM.FileName, fmOpenWrite or fmCreate)

else begin SetCurrentDir(RootDir); exit;

end;

// сохраняем параметры двигателя

- 335 -

Приложение 1

SetCurrentDir(RootDir);

faDat:=TFileStream.Create('dvs\dvig.dat',fmOpenRead);

Size:=faDat.Size;

faArch. WriteBuffer(Size,sizeof(longint)); faArch.CopyFrom(faDat,faDat.Size); faDat.Free;

faDat;=TFileStream.Create('dvs\indic.dat',fmOpenRead);

Size:=faDat.Size;

faArch. WriteBuffer(Size,sizeof(longint)); faArch.CopyFrom(faDat,faDat.Size); faDat.Free;

faDat:=TFileStream.Create('dvs\massa.dat',fmOpenRead);

Size:=faDat.Size;

faArch. WriteBuffer(Size,sizeof(longint)); faArch.CopyFrom(faDat,faDat.Size); faDat.Free;

faDat:=TFileStream.Create('dvs\tepl.dat',fmOpenRead);

Size:=faDat.Size;

faArch. WriteBuffer(Size,sizeof(longmt)); faArch. CopyFrom(faDat,faDat.Size); faDat.Free;

// сохраняем банковские файлы SetCurrentDir(RootDir);

Found:=FindFirst('bank\*.*', faAnyFile-faDirectory, SearchRec); while Found=0 do begin

//открываем найденный текущий банковский файл faBank:=TFileStream.Create('bank\'+SearchRec.Name,fmOpenRead);

//формируем имя банковского файла strpcopy(PStrData,SearchRec.Name);

//запоминаем текущий банковский файл в архивном файле Size:=faBank.Size;

faArch. WriteBuffer(StrData,9); faArch.WriteBuffer(Size,sizeof(longint)); faArch.CopyFrom(faBank,faBank.Size); faBank.Free;

//ищем следующий банковский файл Found:=FindNext(SearchRec);

end;

FmdClose(SearchRec);

faArch.Free;

-336-

Приложение 1

end;

procedure TMainForrn.moLoadIssledCIick(Sender: TObject); var

faBank, faArch, faDat: TFileStream; PStrData: PChar;

Size: longint;

StrData: array [0..8] of char; NameBFile: string;

Found: integer; SearchRec: TSearchRec; begin

PStrData:=StrData;

OpenDialogM.InitialDir:='/archiv'; if OpenDialogM.Execute

then faArch:=TFileStream.Create(OpenDialogM.FileName,fmOpenRead) else begin

SetCurrentDir{RootDir);

exit;

end;

SetCurrentDir(RootDir);

//уничтожаем текущие банковские файлы Found:=FindFirst('bank\*.*', faAnyFile-faDirectory, SearchRec); while Found=0 do begin

deletefile('bank\'+SearchRec.Name);

Found:=FindNext(SearchRec);

end;

FindClose(SearchRec);

//устанавливаем новые параметры двигателя faDat:=TFileStream.Create('dvs\dvig.dat',finOpen'Write or fmCreate); faArch.ReadBuffer(Size,sizeof(longint)); faDat.CopyFrom(faArch,Size);

faDat.Free;

faDat:=TFileStream.Create('dvs\indic.dat',fhiOpenWrite or fmCreate); faArch.ReadBuffer(Size,sizeof(longint)); faDat.CopyFrom(faArch,Size);

faDat.Free;

faDat:=TFileStream.Create('dvs\massa.dat',fmOpenWrite or fmCreate); faArch.ReadBuffer(Size,sizeof(longint)); faDat.CopyFrom(faArch,Size);

- 337 -

Приложение 1

faDat.Free;

faDat:=TFileStream.Create('dvs\tepl.dat',fmOpenWrite or finCreate); faArch.ReadBuffer(Size,sizeof(longint));

faDat.CopyFrom(faArch,Size);

faDat.Free;

ReadDVS;

// создаем новые банковские файлы whiile faArcli.Position<faArcli.Size do begin

//формируем имя банковского файла faArch.ReadBuffer(StrData,9); NameBFile:='bankV+StrPas(PStrData);

//создаем текущий банковский файл

faBank:=TFileStream.Create(NameBFile,finOpenWrite or foiCreate); // считываем данные в новый банковский файл faArch.ReadBuffer(Size,sizeof(longint)); faBank.CopyFrom(faArch,Size);

faBank.Free;

end;

faArch.Free;

end;

procedure TMainFonn.moAboutClick(Sender: TObject); begin

AboutBox.ShowModal;

end;

end.

unit About;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls;

type

TAboutBox = class(TForm) Panel 1: TPanel; Programlcon: TImage; ProductName: TLabel;

- 338 -

Приложение 1

Version: TLabel;

Copyright: TLabel; Comments: TLabel; OKButton: TButton; private

{Private declarations } public

{Public declarations} end;

var

AboutBox: TAboutBox;

implementation

{$R *.DFM}

end.

unit ChngeVar;

interface

uses

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

StdCtrls, Spin;

type

TChangeVar = class(TForm) seDCyl: TSpinEdit;

Label 1: TLabel; btOk: TButton;

procedure FormActivate(Sender: TObject); procedure btOkClick(Sender: TObject); private

{Private declarations } public

{Public declarations } end;

-339-

npHjio>KeHHe 1

var

ChangeVar: TChangeVar;

implementation

uses MainUnit;

{$R *.DFM}

procedure TChangeVar.FormActivate(Sender: TObject); begin

seDCyl.Value:=round(DiamCyl*1000);

end;

procedure TChangeVar.btOkClick(Sender: TObject); begin

DiamCyl:=seDCyl.Value/1000; end;

end.

unit CreatPatt;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Grids, Outline, DirOutln, Spin;

type

TNewPatt = class(TForm) ButOk: TButton; ImageForce: TImage; ListOflForce: TTreeView; ButCancel: TButton; Label! :TLabel;

Label2: TLabel; IbSelForce: TListBox; btClear: TButton; seMinOb: TSpinEdit;

-340-

Приложение 1

seMaxOb: TSpinEdit; seStepOb: TSpinEdit; seNOfCol: TSpinEdit; Label3: TLabel; Label4: TLabel; Labels: TLabel; Label6: TLabel; Label?: TLabel; IbNOfRow: TLabel; btDraft: TButton; cbDraft: TCheckBox;

procedure FormActivate(Sender: TObject); procedure ListOfForceDblClick(Sender: TObject); procedure lbSelForceDblClick(Sender: TObject); procedure btClearClick(Sender: TObject); procedure ButOkClick(Sender: TObject); procedure seNOfColChange(Sender: TObject); procedure cbDraftClick(Sender: TObject); procedure btDraftClick(Sender: TObject);

private

{ Private declarations }

MaxVal, MinVal, StepVal: integer; public

{Public declarations } end;

var

NewPatt: TNewPatt;

implementation

uses MainUnit, DraftProp;

{$R*.DFM}

procedure TNewPatt.FormActivate(Sender: TObject); var

ij,u,qwel: integer; NewNode: TTreeNode;