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

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

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

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

j:=i+l; ifj=13 thenj:=l;

// получаем ключевые точки

with ArrayIznos'^[NCur+l][i] do begin qwePnt2D.X:=ArraySheyka'^[NCur+1 ] .X+Direct.A*Koof*RadIzn; qwePnt2D.Y:=ArraySheyka''[NCur+1 ] .Y+Direct.B *Koof*Radlzn; PolyPnt2:=DispIayPoint(qwePnt2D,qweGab''); qwePnt2D.X:=ArraySheyka'^[NCur+l].X+Direct.A*RadIzn; qwePnt2D.Y:=ArraySheyka''[NCur+1 ].Y+Direct.B *RadIzn; PiePnt2:=DisplayPoint(qwePnt2D,qweGab'^);

if NamePrtpO" then begin

qwePnt2D.X :=ArraySheyka^[NCur+1 ].X+ AIznosPrtp'^[NCur+l][i].Koof*Direct.A*RadIzn;

qwePnt2D.Y:=ArraySheyka'^[NCur+l].Y+ AIznosPrtp'^[NCur+1 ] [i] .Koof^Direct.B *RadIzn;

PrtpPnt2:=DisplayPoint(qwePnt2D,qweGab'^);

end;

end;

with ArrayIznos^[NCur+l]|j] do begm qwePnt2D.X:=ArraySheyka'^[NCur+l].X+Direct.A*Koof*RadIzn; qwePnt2D.Y:=ArraySheyka^[NCur+1 ] .Y+Direct.B *KooPRadIzn; PolyPnt3:=DisplayPoint(qwePnt2D,qweGab''); qwePnt2D.X:=ArraySheyka^[NCur+l].X+Direct.A*RadIzn; qwePnt2D.Y:=ArraySheyka'^[NCur+1 ] .Y+Direct.B *RadIzn; PiePnt3:=DisplayPoint(qwePnt2D,qweGab'^);

if NamePrtpO" then begin qwePnt2D.X:=ArraySlieyka'"[NCur+1 ].X+

AIznosPrtp'^[NCur+l]0].Koof*Direct.A*RadIzn;

qwePnt2D.Y:=ArraySheyka'^[NCur+l].Y+ AIznosPrtp'^[NCur+1 ] 0] .Koof*Direct.B *RadIzn;

PrtpPnt3:=DisplayPoint(qwePnt2D,qweGab'');

end;

end;

// выводим сегмент на экран Pen.Color:=cIBlack; Brush.Color:=clLtGray; {Brush. Style "bsDiagCross;} Brush.Style:=bsSolid;

Pie(OKvadrl .x,OKvadrl .y,OKvadr2.x,OKvadr2.y, PiePnt2.x,PiePnt2.y,PiePnt3.x,PiePnt3.y);

{Brush.Style:=bsSolid;}

-382 -

Приложение 1

Brush.Color:=clWhite;

if (ArrayIznos'^[NCur+1 ] [i]. Summa=0)and (ArrayIznos''[NCur+1 ][j]. Summa=0)

tlien Pie(OKvadrl .x,OKvadrl .y,OKvadr2.x,OKvadr2.y, PiePnt2.x,PiePnt2.y,PiePnt3.x,PiePnt3.y)

else Polygon([PolyPntl,PolyPnt2,PolyPnt3]); Pen.Color:=clRed;

if NamePrtpO" then Polyline([PrtpPnt2,PrtpPnt3]); end; {for}

{$R+} end; {with}

end; {if Check...}

// строим полярную диаграмму if chPolar=true then begin

with qweGab'^ do begin

//устанавливаем цвет Pen.Color:=cIMaroon; Brush.Style:=bsClear;

//рисуем оси

qwePnt.x:=Pole; qwePnt.y:=Pole; PenPos:=qwePnt; LineTo(Pole,OutSpace.Height-Pole); LineTo(OutSpace.Width-Pole,OutSpace.Height-Pole); // выводим наименование осей Font.Color:=clMaroon;

if NameOfForce='nini' then begin TextOut(Pole+2,Pole,'K, кН'); TextOut(OutSpace.Width-Pole-TextWidth('T, кН')-2,

OutSpace.Height-Pole-TextHeight('T, кН')-2,'Т, кН');

end {if} else begin

TextOut(Pole+2,Pole,'K", кН'); TextOut(OutSpace.Width-Pole-TextWidth('T", кН')-2,

OutSpace.Height-Pole-TextHeight('T, кН')-2,'Т", кН'); end; {else}

// проставляем координаты SetMark('x',MinX,qweGab^); SetMark('x',MinX+GabX/2,qweGab'^); SetMark('x',MaxX,qweGab'^); SetMark('y',MinY,qweGab^);

- 383 -

Приложение 1

SetMark('y',MinY+GabY/2,qweGab'');

SetMark('y',MaxY,qweGab^); end; {with qweGab''} Pen.Color-OldCoior;

// строим полярную диаграмму {$R-}

Pen.Color:=clBlack;

PenPos: =DisplayPoint(ArrayPolar''[NCur*NOfX+1 ]'".qweGab'^); fori: =2 toNOfX do begin qwePnt:=DisplayPoint(ArrayPolar^[NCur*NOfX+i]'',qweGab''); Lineto(qwePnt.x,qwePnt.y);

end; {for}

/// выводим диаграмму прототипа if NamePrtpO" then begin Pen.Color:=clRed;

PenPos:=DisplayPoint(APolarPrtp^[NCur*NOfX+l]^qweGab^); for i:=2 to NOfX do begin qwePnt:=DisplayPoint(APolarPrtp'"[NCur*NOfX+i]^,qweGab''); Lineto(qwePnt.x,qwePnt.y);

end; {for} end; {if} {$R+}

end; {if Check...} Pen.Color:=01dColor; end; {with Canvas} end;

procedure TIznos.FonnResize(Sender: TObject); var

KooDC,KoofY: real; i: byte;

qweGab: PGab; begin

if ArraylznosOnil then begin

// перерасчитываем величины, зависимые от размера формы for i:=0 to NOfZ do begin

qweGab:=GabLoc.Items[i]; with qweGab^ do begin

KooD(:=(OutSpace.Width-(OutSpace.Width/PoleKoof))/GabX; Koofy:=(OutSpace.Height-(OutSpace.Height/PoleKoof))/GabY;

- 384 -

Приложение 1

if KoofX<KoofY then Koof:=KoofX else Koof;=KoofY;

OtnosX:=round(OutSpace.Width/2); OtnosY;=OutSpace.Height-round(OutSpace.Height/2); end; {with}

end; {for} end; {if} end;

procedure TIznos.FormClose(Sender: TObject; var Action: TCloseAction); var

faSource: file of TElOfRes; i: word;

begin {procedure FormClose}

//отменяем, если диаграмма используется в качестве прототипа for i:=0 to (MainForm.MDIChildCount-1) do

if (MainForm.MDIChildren[i] is TIznos) and

.((MainForm.MDIChildren[i] as TIznos).NamePrtp=Caption) then begin

(MainForm.MDIChildren[i] as TIznos).NamePrtp:=";

if (MainForm.MDIChildren[i] as TIznos).ArrayIznosOnil then MainForni.MDIChildren[i] .Repaint;

end;

//освобожлаем память из под данных для паттерна

FreeMemory;

//форму закрываем полностью Action:=caFree;

//уничтожаем файл-ресурс assignfile(faSource,SourceFile); erase(faSource);

end; {procedure FormClose}

procedm-e TIznos.ShkalaPaint(Sender: TObject); var

OldSize: integer; OldName: string; OldColor: TColor;

NCur: integer;

-385 -

Приложение I

i: integer; XPos: integer; qweKoof; real; begin

with Shkala.Canvas do begin

//сохраняем старый шрифт 01dSize:=Font.Size; 01dName:=Font.Name; 01dColor:=Brush.Color;

//устанавливаем новый шрифт Font.Name:='Times New Roman'; Font.Size:=6; Brush.Color-clBtnFace;

//выводим значения шкалы на экран NCur:=NObTrack.Min;

fori:=l to NOfZ do begin qweKoof:=(NObTrack.Width-NObTrack.Left)/(NObTrack.Max-NObTrack.Min); XPos:=NObTrack.Left+ romid(qweKooP(NCur-NObTrack.Min))-round(textwidth(inttostr(NCur))/2); textout(XPos,Shkala.Top+10,inttostr(NCur)); NCur:=NCur+NObTrack.Frequency;

if NCur>NObTrack.Max then NCur:=NObTrack.Max; end; {for i}

//восстанавливаем старый шрифт

Font.Size:=01dSize; Font.Name :=01dName; Brush.Color-OldColor; end; {with}

end;

procedure TIznos.NObTrackChange(Sender: TObject); begin

with NObTrack do begm

if Position=Max-Frequency then Position:=Min+Frequency*(NOfZ-2); if chFit=true then CurGab:=GetIndNOb(Position)+l

else CurGab:=0;

if PositionoCurNOb then begin OutSpace.Repaint; CurNOb:=Position;

- 386 -

Приложение 1

end;

end; {with} end;

procedure TIznos.NObTraclcKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

with NObTrack do

if (fi-ac((Position-Min)/Frequency)oO)and(PositionoMax)

then Position:=Min+round((Position-Min)/Frequency)*Frequency; end;

procedure TIznos.FreeiVIemory; var

i:integer;

begin {procedure} {$R-}

//освобождаем память из под данных о координатах шеек ireemem(ArraySheyka);

//освобождаем память из под данных для полярной диаграммы for i:=l to NOfPoints do dispose(ArrayPolar''[i]); fi"eemem(ArrayPo]ar);

ArrayPolar:=nil;

//освобождаем память из под данных для диаграммы износа for i:=l to NOfZ do dispose(ArrayIznos''[i]); fi-eemem(Arraylznos);

ArrayIznos:=nil; {$R+}

//освобождаем память из под габаритной информации

for i:=0 to NOfZ do dispose(GabLoc.Items[i]); GabLoc.Free;

end; {procedure}

end.

unit DraftProp;

interface

uses

- 387 -

Приложение 1

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls;

type

TDraftP = class(TForm) PageControU: TPageControl; btOk: TButton;

btCancel: TButton; TabSheetl: TTabSheet; TabSheet2: TTabSheet; Label 1: TLabel; Label2: TLabel; Label3: TLabel; LabeW: TLabel; Labels: TLabel; Labelo: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; LabellO: TLabel; Labelll: TLabel; Label 12: TLabel; Label 13: TLabel; LabelM: TLabel; Label 15: TLabel; LabellO: TLabel; Labell7: TLabel; LabellS: TLabel; EditL.TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edits: TEdit;

Editó: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

EditlO: TEdit;

Editll: TEdit;

Editl2: TEdit;

-388-

Приложение 1

Editl3: TEdit;

Editl4: TEdit;

Editl5: TEdit;

Editl6: TEdit;

Editl7: TEdit;

Editl8: TEdit; Image!: TImage; Image2: TImage;

procedure FormActivate(Sender: TObject); procedure bt01iC!ick;(Sender: TObject); procedure FormCreate(Sender: TObject); private

{Private declarations } public

{Public declarations } NameOfFile: string; end;

var

DraftP: TDraftP;

implementation

{$R *.DFM}

procedure TDraftP.FormCreate(Sender: TObject); begin

NameOfFiIe:-draft.dat'; end;

procedure TDraftP.FormActivate(Sender: TObject); var

faDat: textfile; qweStr: string; begin

// открываем файл с параметрами

if fileexists(NameOfFile)=true then begin assignfile(faDat,NameOfFi]e); reset(faDat);

end

else exit;

// считываем значения параметров из файла readln(faDat,qweStr); Editl .Text:=qweStr; readln(faDat,qweStr); Edit2 .Texf.=qweStr; readIn(faDat,qweStr); Edit3 .Text:=qweStr; readln(faDat,qweStr); Edit4.Text:=qweStr; readln(faDat,qweStr); EditS .Text:=qweStr; readln(faDat,qweStr); Edit6.Text:=qweStr; readln(faDat,qweStr); Edit7.Text:=qweStr; readln(faDat,qweStr); Edit8.Text:=qweStr; readln(faDat,qweStr); Edit9.Text:=qweStr; readln(faDat,qweStr); EditlO.Text;=qweStr; readln(faDat,qweStr); Editl l.Text:=qweStr; readln(faDat,qweStr); Editl2.Text:=qweStr; readln(faDat,qweStr); Editl3.Text:=qweStr; readln(faDat,qweStr); Editl4.Text:=qweStr; readln(faDat,qweStr); Editl5.Text:=qweStr; readln(faDat,qweStr); Editl6.Text;=qweStr; readln(faDat,qweStr); Edit 17.Text: =qweStr; readln(faDat,qweStr); Editl8.Text:=qweStr; // закрываем файл

closefile(faDat);

end;

procedure TDraftP.btOkClick(Sender: TObject); var

faDat: textfile; begin

//связываемся с файлом для записи assignfile(faDat,NameOfFile); rewrite(faDat);

//записываем значения параметров в файл writeln(faDat,Editl .Text); writeln(faDat,Edit2.Text); writeln(faDat,Edit3.Text); writeln(faDat,Edit4.Text); writeln(faDat,Edit5 .Text); writeln(faDat,Edit6.Text); writeln(faDat,Edit7.Text); writeln(faDat,Edit8.Text);

-390-

Приложение 1

writeln(faDat,Edit9.Text); writeln(faDat,Editl O.Text); writeln(faDat,Editl l.Text); writeln(faDat,Editl 2.Text); writeln(faDat,Editl 3 .Text); writeIn(faDat,Editl4.Text); writeIn(faDat,Editl S.Text); writeIn(faDat,Editl 6.Text); writeln(faDat,Editl 7.Text); writeln(faDat,Editl S.Text); // закрываем файл closefile(faDat);

end;

end.

imit FormBank;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin, Gauges, ExtCtrls;

type

TAddToBank = class(TForm) ggProgress: TGauge; btExit: TButton;

seMinOb: TSpinEdit; seMaxOb: TSpinEdit; seStepOb: TSpinEdit; Label l:TLabel; Label2: TLabel; LabeI3: TLabel; Label4: TLabel; btGo: TButton;

Bevel 1; TBevel;

Labels: TLabel;

Label6: TLabel;

Label7: TLabel;