unit UPrinc;

interface

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

type
  TFormMain = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Edit1: TEdit;
    Bevel1: TBevel;
    Bevel2: TBevel;
    LBRes: TListBox;
    LBCMD: TListBox;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton1: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    OpenDialog1: TOpenDialog;
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure Edit1Enter(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
  private
    { Private declarations }
    M:TMotorCMD;
  public
    { Public declarations }
    procedure OnFindFact(var R:TRegra);
    procedure ExecCMD(S:string);
  end;

var
  FormMain: TFormMain;

implementation

uses UADFat;


{$R *.DFM}

procedure TFormMain.SpeedButton6Click(Sender: TObject);
begin
ExecCmd('limpa');
LBRes.Items.Clear;
LBCMD.Items.Clear;
end;

procedure TFormMain.SpeedButton5Click(Sender: TObject);
begin
ExecCmd('limparegras');
end;

procedure TFormMain.SpeedButton4Click(Sender: TObject);
begin
ExecCmd('limpafatos');
end;

procedure TFormMain.Edit1Enter(Sender: TObject);
begin
ExecCmd(Edit1.Text);

Edit1.Text:='';
end;

procedure TFormMain.OnFindFact(var R:TRegra);
begin
LBRes.Items.Add(M.GetRegraStr(R));
end;

procedure TFormMain.ExecCMD(S:string);
begin
LBCMD.Items.Add(S);
if M.ExecCMD(S)
   then LBRes.Items.Add('ok')
   else LBCMD.Items.Add(' failed.');
end;

procedure TFormMain.FormCreate(Sender: TObject);
begin
M.Init(OnFindFact);
end;

procedure TFormMain.FormDestroy(Sender: TObject);
begin
M.Done;
end;

procedure TFormMain.SpeedButton2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
   begin
   ExecCmd('le '+OpenDialog1.FileName)
   end;
end;

procedure TFormMain.SpeedButton3Click(Sender: TObject);
var Counter:word;
begin
DL.SrcList.Items.Clear;
DL.DstList.Items.Clear;
for Counter:=1 to M.SW.Num do
    if not(M.EFato(Counter))
       then DL.SrcList.Items.Add(M.SW.GetStr(Counter));
DL.ShowModal;
if (DL.ModalResult=Mrok) and (DL.DstList.Items.Count>=0) then
   begin
   for Counter:=0 to pred(DL.DstList.Items.Count) do
       ExecCmd('fato '+DL.DstList.Items[Counter]);
   end;
end;

procedure TFormMain.SpeedButton1Click(Sender: TObject);
var Counter:word;
begin
for Counter:=1 to M.BRegras.Num
    do LBRes.Items.Add(M.GetRegraStr(M.BRegras.Reg[Counter]));
end;

procedure TFormMain.SpeedButton7Click(Sender: TObject);
begin
LBRes.Items.Clear;
end;

procedure TFormMain.SpeedButton8Click(Sender: TObject);
begin
LBCMD.Items.Clear;
end;

end.