⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wbtaunit1.pas

📁 System will automatically delete the directory of debug and release, so please do not put files on t
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit WBTAUnit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ComCtrls, Menus, ToolWin, Buttons,
  Grids, Clipbrd, INIFiles,  ShellApi, CheckLst, CPortCtl, CPort;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Exit1: TMenuItem;
    SetCom1: TMenuItem;
    UnitSelect1: TMenuItem;
    StatusBar1: TStatusBar;
    CAASCA11: TMenuItem;
    CAASCA21: TMenuItem;
    DRSC1: TMenuItem;
    SS2000I1: TMenuItem;
    PIEPI1: TMenuItem;
    TDC1: TMenuItem;
    WarpDrive1: TMenuItem;
    Elterm24Emulator1: TMenuItem;
    Help: TMenuItem;
    helpIndex1: TMenuItem;
    N1: TMenuItem;
    About1: TMenuItem;
    Commands1: TMenuItem;
    HEXMode1: TMenuItem;
    Edit1: TMenuItem;
    Copy1: TMenuItem;
    N2: TMenuItem;
    Clearscreen1: TMenuItem;
    ComTerminal1: TComTerminal;
    ToolBar1: TToolBar;
    Terminal1: TMenuItem;
    Communication1: TMenuItem;
    SpeedButton1: TSpeedButton;
    IOButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    RepeatButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    Clearscreen2: TMenuItem;
    Splitter1: TSplitter;
    Scanforindexer1: TMenuItem;
    SaveDialog1: TSaveDialog;
    IDXtpoPC1: TMenuItem;
    StringGrid1: TStringGrid;
    Label1: TLabel;
    Label2: TLabel;
    Repeat1: TMenuItem;
    RepSetup: TMenuItem;
    Macros1: TMenuItem;
    N01: TMenuItem;
    N11: TMenuItem;
    N21: TMenuItem;
    N31: TMenuItem;
    N41: TMenuItem;
    N51: TMenuItem;
    N61: TMenuItem;
    N71: TMenuItem;
    N81: TMenuItem;
    N91: TMenuItem;
    ProgPar1: TMenuItem;
    Program1: TMenuItem;
    Parameters1: TMenuItem;
    ComboBox1: TComboBox;
    WBTA1: TMenuItem;
    Timer1: TTimer;
    N3: TMenuItem;
    Autorepeat1: TMenuItem;
    N4: TMenuItem;
    Viewlogfile1: TMenuItem;
    OpenDialog1: TOpenDialog;
    Unitsetup1: TMenuItem;
    N5: TMenuItem;
    PopupMenu1: TPopupMenu;
    Save1: TMenuItem;
    Load1: TMenuItem;
    ClearAll1: TMenuItem;
    AltT1: TMenuItem;
    Contents1: TMenuItem;
    ComboBox2: TComboBox;
    ComPort1: TComPort;
    procedure FormCreate(Sender: TObject);
    procedure SetCom1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure CAASCA11Click(Sender: TObject);
    procedure CAASCA21Click(Sender: TObject);
    procedure DRSC1Click(Sender: TObject);
    procedure SS2000I1Click(Sender: TObject);
    procedure PIEPI1Click(Sender: TObject);
    procedure TDC1Click(Sender: TObject);
    procedure WarpDrive1Click(Sender: TObject);
    procedure HEXMode1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Terminal1Click(Sender: TObject);
    procedure Clearscreen2Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
//    procedure Scanforindexer1Click(Sender: TObject);
    procedure RepeatButton4Click(Sender: TObject);
    procedure Scanforindexer1Click(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure IDXtpoPC1Click(Sender: TObject);
    procedure ReadLParameters1Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Copy1Click(Sender: TObject);
    procedure StringGrid1Click(Sender: TObject);
    procedure RepSetupClick(Sender: TObject);
    procedure Editmacros1Click(Sender: TObject);
    procedure N01Click(Sender: TObject);
    procedure WBTA1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure ProgPar1Click(Sender: TObject);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure IOButton2Click(Sender: TObject);
    procedure Autorepeat1Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure Viewlogfile1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ClearAll1Click(Sender: TObject);
    procedure helpIndex1Click(Sender: TObject);
    procedure About1Click(Sender: TObject);
    procedure Contents1Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ComboBox2Change(Sender: TObject);
    procedure StatusBar1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
//  procedure CreateParams(var Params: TCreateParams); override;
  private
    { Private declarations }
    CommandRepeat : Boolean;
    INIFilename : string;
    INIFile     : TINIFile;
    INISection  : string;
    Params      : Boolean;  // selct parameter or terminal

    //  procedure XWETA0001;
    // from the old WETA.PAS program
    procedure UpdateCombo(S : String);
    function  ByteHex(a : byte):string;
    Procedure PutContrSpec;
    Procedure SendMacro(M : integer);
    procedure UpdateComPort;
    Procedure ReadINI;
    procedure SaveINI;
//    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
  public
    { Public declarations }
    procedure WriteScreen(S : string);
    procedure NoIDXSel;
    FUNCTION  CleanStr(S : String):string;
    Procedure TermReceive;                      // terminal for the EPI and SS2000I
    Function  AchterSpatieWeg (S: ShortString) : ShortString;
    function AddTextToFile(const aFileName, aText: string; AddCRLF: Boolean): Boolean;
  end;

var
  Form1: TForm1;

 implementation

uses ScanIDX, WBTA_Var, WBTA_32_IDX, WBTA_RepTime, WBTA_Macro, WBTA_EPI_IO,
     WarpIOTest, WBTA_SS2KIO;

{$R *.DFM}

{
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle:= Params.ExStyle or WS_EX_APPWINDOW;
end;

procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
  case Msg.CmdType of
    SC_MINIMIZE: begin
       ShowWindow(Handle, SW_MINIMIZE);
(**)   Application.Minimize;
(**)   ShowWindow(Application.Handle, SW_HIDE);
(**)   ShowWindow(Handle, SW_MINIMIZE);
    end;
    SC_RESTORE: begin
(**)  Application.Restore;
      ShowWindow(Handle, SW_RESTORE);
(**)  ShowWindow(Application.Handle, SW_HIDE);
    end;
  else
    inherited;
 end;
end;
}

FUNCTION TForm1.AchterSpatieWeg (S: ShortString) : ShortString;
BEGIN
  WHILE S[Length(S)] = ' ' DO
     Delete (S,Length(S),1);
  Result := S;
END; { AchterSpatieWeg }

procedure TForm1.UpdateComPort;
begin
  Comport1.Close;
  Comport1.Port := 'COM' + IntToStr(ComPort);
  Comport1.Baudrate := StrToBaudrate(IntToStr(Baudrate));
  Comport1.Open;
  StatusBar1.Panels[0].Text := ' '+ Comport1.Port + ' ' +
     BaudRateToStr(ComPort1.BaudRate) + ' ' +
     DataBitsToStr(ComPort1.DataBits) + ' ' +
     ParityToStr(ComPort1.Parity.Bits) + ' ' +
     StopBitsToStr(ComPort1.StopBits);
end;

Procedure TForm1.ReadINI;
begin
  IniFile := TIniFile.Create(INIFileName);
AddTextToFile('error.log','INI file created',true);
// read the comport setting
//  ComPort  := IniFile.ReadInteger (INISection,  'COMPort', 1); // problem NT5.6
  ComPort  := StrToInt(IniFile.ReadString (INISection,  'COMPort', '1'));

AddTextToFile('error.log','Comport read OK',true);
  BaudRate := StrToInt(IniFile.ReadString (INISection,  'Baudrate', '9600'));
AddTextToFile('error.log','Baudrate  read OK',true);

AddTextToFile('error.log','comport settings ',true);
  // read the keyboard macro's
  Alt0 := IniFile.ReadString  (INISection,  'Alt0 Macro','Alt0');
  Alt1 := IniFile.ReadString  (INISection,  'Alt1 Macro','Alt1');
  Alt2 := IniFile.ReadString  (INISection,  'Alt2 Macro','Alt2');
  Alt3 := IniFile.ReadString  (INISection,  'Alt3 Macro','Alt3');
  Alt4 := IniFile.ReadString  (INISection,  'Alt4 Macro','Alt4');
  Alt5 := IniFile.ReadString  (INISection,  'Alt5 Macro','Alt5');
  Alt6 := IniFile.ReadString  (INISection,  'Alt6 Macro','Alt6');
  Alt7 := IniFile.ReadString  (INISection,  'Alt7 Macro','Alt7');
  Alt8 := IniFile.ReadString  (INISection,  'Alt8 Macro','Alt8');
  Alt9 := IniFile.ReadString  (INISection,  'Alt9 Macro','Alt9');
// some special stuff
AddTextToFile('error.log','macro settings',true);
  RepDelay  := StrToInt(IniFile.ReadString (INISection,  'Repeat delay', '1000' ));
  Emulation := StrToInt(IniFile.ReadString (INISection,  'Terminal Emulation', '1' ));
  Editor := IniFile.ReadString (INISection,  'Editor',' Choose editor');
  LogFile := IniFile.ReadString (INISection,  'Terminal Log File','WBTA.LOG');
  IniFile.Free;
  Form1.SpeedButton3.Hint :=  'Log file = '+ LogFile;
  AddTextToFile('error.log','rest OK',true);
  UpdateComPort;
  AddTextToFile('error.log','comport updated, end of INI file',true);
end;

procedure TForm1.SaveINI;
begin
  IniFile := TIniFile.Create(INIFileName);
// save the comport setting
  IniFile.WriteString (INISection,  'COMPort',  IntToStr(Comport));
  IniFile.WriteString (INISection,  'Baudrate', IntToStr(Baudrate));
// save the keyboard macro's
  IniFile.WriteString  (INISection,  'Alt0 Macro',Alt0);
  IniFile.WriteString  (INISection,  'Alt1 Macro',Alt1);
  IniFile.WriteString  (INISection,  'Alt2 Macro',Alt2);
  IniFile.WriteString  (INISection,  'Alt3 Macro',Alt3);
  IniFile.WriteString  (INISection,  'Alt4 Macro',Alt4);
  IniFile.WriteString  (INISection,  'Alt5 Macro',Alt5);
  IniFile.WriteString  (INISection,  'Alt6 Macro',Alt6);
  IniFile.WriteString  (INISection,  'Alt7 Macro',Alt7);
  IniFile.WriteString  (INISection,  'Alt8 Macro',Alt8);
  IniFile.WriteString  (INISection,  'Alt9 Macro',Alt9);
// some special stuff
  IniFile.WriteString  (INISection,  'Repeat delay',  IntToStr(RepDelay));
  IniFile.WriteString  (INISection,  'Terminal Emulation',  IntToStr(Emulation));
  IniFile.WriteString  (INISection,  'Editor',editor);
  IniFile.WriteString  (INISection,  'Terminal Log File',LogFile);
  IniFile.Free;
  Form1.SpeedButton3.Hint :=  'Log file = '+ LogFile;
  UpdateComPort;
end;

Procedure TForm1.PutContrSpec;
Begin
  if Params then
     SpeedButton1.Click;
  AddTextToFile('error.log','Procedure TForm1.PutContrSpec',true);
  CAASCA11.Checked   := False;
  CAASCA21.Checked   := False;
  DRSC1.Checked      := False;
  SS2000I1.Checked   := False;
  PIEPI1.Checked     := False;
  TDC1.Checked       := False;
  WarpDrive1.Checked := False;
  SpeedButton1.Enabled := False;

  Case ContrType of
    1 : Begin   {SCA1 / CAA1 }
          EXT := 'PRG';
          CAASCA11.Checked   := True;
          UnitStr := '  SCA1 / CAA1';
          IOButton2.Enabled := False;
        end;
    2 : Begin   { SCA2 / CAA2 }
          EXT := 'PRG';
          CAASCA21.Checked   := true;
          UnitStr := '  SCA2 / CAA2';
          IOButton2.Enabled := False;
        end;
    3 : begin { DRSC }
          EXT := 'SC';
          DRSC1.Checked      := True;
          UnitStr := '  DRSC';
          IOButton2.Enabled := False;
        end;
    4 : begin   { SS2000I }
          EXT := 'PGM';
          SS2000I1.Checked   := True;
          UnitStr := '  SS2000I';
          IOButton2.Enabled := True;
          SpeedButton1.Enabled := True;
        end;
    5 :  Begin  { EPI }
          EXT := 'PGM';
          PIEPI1.Checked     := True;
          UnitStr := '  PI / EPI Indexers';
          IOButton2.Enabled := True;
          SpeedButton1.Enabled := True;
        end;
    6 : begin   { TDC }
          EXT := 'DMC';  // Direc Mode Control
          TDC1.Checked       := True;
          UnitStr := '  TDC';
          IOButton2.Enabled := True;
        end;
    7 : Begin { Cobra }
          EXT := 'DMC';       { Direct Mode Cobra }
          WarpDrive1.Checked := True;
          UnitStr := '  Warpdrive';
          IOButton2.Enabled := True;
        end;
    8 : begin   { Elterm emulator }
          EXT := '   ';
          UnitStr := '  Elterm 24 Emulator';
          IOButton2.Enabled := False;
        end;
  end;
  INISection := UnitStr;
  while pos(' ',INISection) <> 0 do      // remove spaces
     delete(INISection,pos(' ',INISection),1);

{  Case ContrType of
    1 : INISection := 'SCA1 / CAA1';
    2 : INISection := 'SCA2 / CAA2';
    3 : INISection := 'DRSC';
    4 : INISection := 'SS2000I';
    5 : INISection := 'EPI';
    6 : INISection := 'TDC';
    7 : INISection := 'WarpDrive';
    8 : INISection := 'Elterm emulator';
  end; }
  ReadINI;
//  SetCom; { to get the right COM port activated }
  StatusBar1.Panels[1].Text :=  ' EXT '+ EXT;
  Form1.caption := Progname + UnitStr;
  try
    If Comterminal1.Visible = True then
       Comterminal1.SetFocus;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -