диссертация модальная логика
.pdf-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;