Создание обучающей системы автоматизированного проектирования маломощных электромеханических следящих систем, страница 71

begin

  fmChoose.Hide;

  Form1.Show;

  Form1.Enabled := True;

  // Вычисляем KwUp

  KwUp := 20*(-1.5 - log10(1/Ts) + log10(1/T1) + log10(Kw));

  // Добавляем  событие

  Form1.MmEvent.Lines.Add('Добротность системы увеличена - Kw = '+FloatToStrF(KwUp, ffFixed, 6, 3)+', теперь ЛАХ разомкнутой системы '+

    'не попадает в запретную зону низких частот, требования по точности выполняются');

Form1.TestT3;

end;

procedure TfmChoose.bbNoKwClick(Sender: TObject);

begin

  fmChoose.Hide;

  Form1.Show;

  Form1.Enabled := True;

  KwUp := Kw;

  // Добавляем  событие

  Form1.MmEvent.Lines.Add('Добротность системы не увеличена - Kw = '+FloatToStrF(KwUp, ffFixed, 6,3)+', ЛАХ разомкнутой системы '+

    'попадает в запретную зону низких частот, необходимы требования по точности будут учтены при проектировании корректирующего устройства.');

  Form1.TestT3; // на процедуру выбора T3

end;

procedure TfmChoose.FormShow(Sender: TObject);

begin

  bbUpKw.SetFocus;

end;

end.

Б.6 Содержание файла Unit5.pas

unit Unit5;

interface

uses

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

  Dialogs, StdCtrls, ExtCtrls, Buttons;

type

  TfmChooseT3 = class(TForm)

    Panel1: TPanel;

    Panel2: TPanel;

    Panel3: TPanel;

    bbRavn: TBitBtn;

    bbDown: TBitBtn;

    Bevel1: TBevel;

    mmCH1: TMemo;

    mmCH2: TMemo;

    Bevel2: TBevel;

    procedure FormShow(Sender: TObject);

    procedure bbDownClick(Sender: TObject);

    procedure bbRavnClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  fmChooseT3: TfmChooseT3;

implementation

Uses Unit1;

{$R *.dfm}

procedure TfmChooseT3.bbRavnClick(Sender: TObject);

begin

  fmChooseT3.Hide;            

  Form1.Show;

  Form1.Enabled := True;

  vars[9] := T3*1000; // Меняем tau2

  // Событие

  Form1.MmEvent.Lines.Add('Постоянная времени tau2 исходной системы была изменена, tau2 = '+FloatToStrF((vars[9]*0.001), ffFixed, 6,3)+'.');

  Form1.DrawGraphics(); // Начинаем рисовать графики

  // State = 3 3-й вид лах уже выбран

end;

procedure TfmChooseT3.bbDownClick(Sender: TObject);

begin

  fmChooseT3.Hide;

  Form1.Show;

  Form1.Enabled := True;

  // Событие

  Form1.MmEvent.Lines.Add('Постоянная времени tau2 исходной системы не была изменена.');

  State := 4; // Четвёрный вид Лах

  Form1.DrawGraphics(); // Начинаем рисовать графики

end;

procedure TfmChooseT3.FormShow(Sender: TObject);

begin

  bbRavn.SetFocus;

end;

end.

Б.7 Содержание файла Unit62.pas

unit Unit6;

interface

uses

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

  Dialogs, StdCtrls, Buttons, Grids, DBGrids, ExtCtrls, DB, DBTables;

type

  TfmVar = class(TForm)

    DataSource1: TDataSource;

    Table1: TTable;

    Panel1: TPanel;

    DBGrid1: TDBGrid;

    Panel2: TPanel;

    bbChoose: TBitBtn;

    BitBtn1: TBitBtn;

    procedure bbChooseClick(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  fmVar: TfmVar;

implementation

Uses Unit1;

{$R *.dfm}

procedure TfmVar.BitBtn1Click(Sender: TObject);

begin

  // Открыть Main

  fmVar.Close;

end;

procedure TfmVar.bbChooseClick(Sender: TObject);

begin

  // Копируем выделенную строку

  Form1.Edit1.Text := Table1.Fields[1].AsString;

  Form1.Edit2.Text := Table1.Fields[2].AsString;

  Form1.Edit3.Text := Table1.Fields[3].AsString;

  Form1.Edit4.Text := Table1.Fields[4].AsString;

  Form1.Edit5.Text := Table1.Fields[5].AsString;

  Form1.Edit6.Text := Table1.Fields[6].AsString;

  Form1.Edit7.Text := Table1.Fields[7].AsString;

  Form1.Edit8.Text := Table1.Fields[8].AsString;

  Form1.Edit9.Text := Table1.Fields[9].AsString;

  Close; // Закрываем форму

end;

end.