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

📄 formcoun.pas

📁 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit FormCoun;

interface

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

type
  TfrmCounter = class(TForm)
    Panel1: TPanel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    chkOverflow0: TCheckBox;
    chkOverflow1: TCheckBox;
    chkOverflow3: TCheckBox;
    chkOverflow2: TCheckBox;
    chkOverflow5: TCheckBox;
    chkOverflow4: TCheckBox;
    chkOverflow7: TCheckBox;
    chkOverflow6: TCheckBox;
    PanelBit0: TPanel;
    optRising0: TRadioButton;
    optFalling0: TRadioButton;
    PanelBit1: TPanel;
    optRising1: TRadioButton;
    optFalling1: TRadioButton;
    PanelBit2: TPanel;
    optRising2: TRadioButton;
    optFalling2: TRadioButton;
    PanelBit3: TPanel;
    optRising3: TRadioButton;
    optFalling3: TRadioButton;
    PanelBit4: TPanel;
    optRising4: TRadioButton;
    optFalling4: TRadioButton;
    PanelBit7: TPanel;
    optRising7: TRadioButton;
    optFalling7: TRadioButton;
    PanelBit5: TPanel;
    optRising5: TRadioButton;
    optFalling5: TRadioButton;
    PanelBit6: TPanel;
    optFalling6: TRadioButton;
    optRising6: TRadioButton;
    chkMatchEnable0: TCheckBox;
    chkMatchEnable1: TCheckBox;
    chkMatchEnable3: TCheckBox;
    chkMatchEnable2: TCheckBox;
    chkMatchEnable5: TCheckBox;
    chkMatchEnable4: TCheckBox;
    chkMatchEnable7: TCheckBox;
    chkMatchEnable6: TCheckBox;
    chkBitEnable0: TCheckBox;
    chkBitEnable1: TCheckBox;
    chkBitEnable3: TCheckBox;
    chkBitEnable2: TCheckBox;
    chkBitEnable5: TCheckBox;
    chkBitEnable4: TCheckBox;
    chkBitEnable7: TCheckBox;
    chkBitEnable6: TCheckBox;
    txtMatchValue0: TEdit;
    txtMatchValue1: TEdit;
    txtMatchValue3: TEdit;
    txtMatchValue2: TEdit;
    txtMatchValue7: TEdit;
    txtMatchValue6: TEdit;
    txtMatchValue5: TEdit;
    txtMatchValue4: TEdit;
    txtPresetValue0: TEdit;
    txtPresetValue1: TEdit;
    txtPresetValue3: TEdit;
    txtPresetValue2: TEdit;
    txtPresetValue7: TEdit;
    txtPresetValue6: TEdit;
    txtPresetValue5: TEdit;
    txtPresetValue4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    GroupBox1: TGroupBox;
    optUpCount: TRadioButton;
    optDownCount: TRadioButton;
    cmdCountOK: TBitBtn;
    cmdCancel: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure chkBitEnable7Click(Sender: TObject);
    procedure chkBitEnable6Click(Sender: TObject);
    procedure chkBitEnable5Click(Sender: TObject);
    procedure chkBitEnable4Click(Sender: TObject);
    procedure chkBitEnable2Click(Sender: TObject);
    procedure chkBitEnable1Click(Sender: TObject);
    procedure chkBitEnable0Click(Sender: TObject);
    procedure chkBitEnable3Click(Sender: TObject);
    procedure chkMatchEnable7Click(Sender: TObject);
    procedure chkMatchEnable6Click(Sender: TObject);
    procedure chkMatchEnable5Click(Sender: TObject);
    procedure chkMatchEnable4Click(Sender: TObject);
    procedure chkMatchEnable3Click(Sender: TObject);
    procedure chkMatchEnable2Click(Sender: TObject);
    procedure chkMatchEnable1Click(Sender: TObject);
    procedure chkMatchEnable0Click(Sender: TObject);
    procedure cmdCountOKClick(Sender: TObject);
    procedure cmdCancelClick(Sender: TObject);
    procedure chkOverflow7Click(Sender: TObject);
    procedure chkOverflow6Click(Sender: TObject);
    procedure chkOverflow5Click(Sender: TObject);
    procedure chkOverflow4Click(Sender: TObject);
    procedure chkOverflow3Click(Sender: TObject);
    procedure chkOverflow2Click(Sender: TObject);
    procedure chkOverflow1Click(Sender: TObject);
    procedure chkOverflow0Click(Sender: TObject);
    procedure optRising7Click(Sender: TObject);
    procedure optRising6Click(Sender: TObject);
    procedure optRising5Click(Sender: TObject);
    procedure optRising4Click(Sender: TObject);
    procedure optRising3Click(Sender: TObject);
    procedure optRising2Click(Sender: TObject);
    procedure optRising1Click(Sender: TObject);
    procedure optRising0Click(Sender: TObject);
    procedure optFalling7Click(Sender: TObject);
    procedure optFalling6Click(Sender: TObject);
    procedure optFalling5Click(Sender: TObject);
    procedure optFalling4Click(Sender: TObject);
    procedure optFalling3Click(Sender: TObject);
    procedure optFalling2Click(Sender: TObject);
    procedure optFalling1Click(Sender: TObject);
    procedure optFalling0Click(Sender: TObject);
    procedure txtPresetValue7Change(Sender: TObject);
    procedure txtPresetValue6Change(Sender: TObject);
    procedure txtPresetValue5Change(Sender: TObject);
    procedure txtPresetValue4Change(Sender: TObject);
    procedure txtPresetValue3Change(Sender: TObject);
    procedure txtPresetValue2Change(Sender: TObject);
    procedure txtPresetValue1Change(Sender: TObject);
    procedure txtPresetValue0Change(Sender: TObject);
    procedure txtMatchValue7Change(Sender: TObject);
    procedure txtMatchValue6Change(Sender: TObject);
    procedure txtMatchValue5Change(Sender: TObject);
    procedure txtMatchValue4Change(Sender: TObject);
    procedure txtMatchValue3Change(Sender: TObject);
    procedure txtMatchValue2Change(Sender: TObject);
    procedure txtMatchValue1Change(Sender: TObject);
    procedure txtMatchValue0Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    EnableMask:         Integer;
    MatchEnableMask:    Integer;
    OverflowEnableMask: Integer;
    Direction:          Integer;
    TrigEdge:           Integer;
    PresetValue: array[0..7] of Word;
    MatchValue:  array[0..7] of Word;
    bCancel: Boolean;
  end;

var
  frmCounter: TfrmCounter;

implementation

{$R *.DFM}


procedure TfrmCounter.FormCreate(Sender: TObject);
begin
	EnableMask         := 0;
   MatchEnableMask    := 0;
	OverflowEnableMask := 0;
	Direction          := 0;
	TrigEdge           := $FF;
	bCancel            := True;
end;

procedure TfrmCounter.chkBitEnable7Click(Sender: TObject);
begin
	if chkBitEnable7.State = cbChecked Then
     Begin
   	EnableMask := EnableMask or $80;
      txtPresetValue7.Enabled := True;
		chkMatchEnable7.Enabled := True;
		chkOverflow7.Enabled    := True;
		PanelBit7.Enabled       := True;
		optRising7.Enabled      := True;
		optFalling7.Enabled     := True;
     End
   else
     Begin
   	EnableMask := EnableMask and $7F;
      txtPresetValue7.Enabled := False;
		chkMatchEnable7.Enabled := False;
		chkOverflow7.Enabled    := False;
		PanelBit7.Enabled       := False;
		optRising7.Enabled      := False;
		optFalling7.Enabled     := False;
     End
end;

procedure TfrmCounter.chkBitEnable6Click(Sender: TObject);
begin
	if chkBitEnable6.State = cbChecked Then
     Begin
   	EnableMask := EnableMask or $40;
      txtPresetValue6.Enabled := True;
		chkMatchEnable6.Enabled := True;
		chkOverflow6.Enabled := True;
		PanelBit6.Enabled := True;
		optRising6.Enabled := True;
		optFalling6.Enabled := True;
     End
   else
     Begin
   	EnableMask := EnableMask and $BF;
      txtPresetValue7.Enabled := False;
		chkMatchEnable7.Enabled := False;
		chkOverflow7.Enabled := False;
		PanelBit7.Enabled := False;
		optRising7.Enabled := False;
		optFalling7.Enabled := False;
     End
end;

procedure TfrmCounter.chkBitEnable5Click(Sender: TObject);
begin
	if chkBitEnable5.State = cbChecked Then
     Begin
   	EnableMask := EnableMask or $20;
      txtPresetValue5.Enabled := True;
		chkMatchEnable5.Enabled := True;
		chkOverflow5.Enabled := True;
		PanelBit5.Enabled := True;
		optRising5.Enabled := True;
		optFalling5.Enabled := True;
     End
   else
     Begin
   	EnableMask := EnableMask and $DF;
      txtPresetValue5.Enabled := False;
		chkMatchEnable5.Enabled := False;
		chkOverflow5.Enabled := False;
		PanelBit5.Enabled := False;
		optRising5.Enabled := False;
		optFalling5.Enabled := False;
     End
end;

procedure TfrmCounter.chkBitEnable4Click(Sender: TObject);
begin
	if chkBitEnable4.State = cbChecked Then
     Begin
   	EnableMask := EnableMask or $10;
      txtPresetValue4.Enabled := True;
		chkMatchEnable4.Enabled := True;
		chkOverflow4.Enabled := True;
		PanelBit4.Enabled := True;
		optRising4.Enabled := True;
		optFalling4.Enabled := True;
     End
   else
     Begin
   	EnableMask := EnableMask and $EF;
      txtPresetValue4.Enabled := False;
		chkMatchEnable4.Enabled := False;
		chkOverflow4.Enabled := False;
		PanelBit4.Enabled := False;
		optRising4.Enabled := False;
		optFalling4.Enabled := False;
     End
end;

procedure TfrmCounter.chkBitEnable3Click(Sender: TObject);
begin
	if chkBitEnable3.State = cbChecked Then
     Begin
   	EnableMask := EnableMask or $08;
      txtPresetValue3.Enabled := True;
		chkMatchEnable3.Enabled := True;
		chkOverflow3.Enabled := True;
		PanelBit3.Enabled := True;
		optRising3.Enabled := True;
		optFalling3.Enabled := True;
     End
   else
     Begin
   	EnableMask := EnableMask and $F7;
      txtPresetValue3.Enabled := False;
		chkMatchEnable3.Enabled := False;
		chkOverflow3.Enabled := False;
		PanelBit3.Enabled := False;
		optRising3.Enabled := False;
		optFalling3.Enabled := False;
     End
end;

procedure TfrmCounter.chkBitEnable2Click(Sender: TObject);
begin
	if chkBitEnable2.State = cbChecked Then
     Begin
   	EnableMask := EnableMask or $04;
      txtPresetValue2.Enabled := True;
		chkMatchEnable2.Enabled := True;
		chkOverflow2.Enabled := True;
		PanelBit2.Enabled := True;
		optRising2.Enabled := True;
		optFalling2.Enabled := True;
     End
   else
     Begin
   	EnableMask := EnableMask and $FB;
      txtPresetValue2.Enabled := False;
		chkMatchEnable2.Enabled := False;
		chkOverflow2.Enabled := False;
		PanelBit2.Enabled := False;
		optRising2.Enabled := False;
		optFalling2.Enabled := False;
     End
end;

procedure TfrmCounter.chkBitEnable1Click(Sender: TObject);
begin
	if chkBitEnable1.State = cbChecked Then
     Begin
   	EnableMask := EnableMask or $02;
      txtPresetValue1.Enabled := True;
		chkMatchEnable1.Enabled := True;
		chkOverflow1.Enabled := True;
		PanelBit1.Enabled := True;
		optRising1.Enabled := True;
		optFalling1.Enabled := True;
     End
   else
     Begin
   	EnableMask := EnableMask and $FD;
      txtPresetValue1.Enabled := False;
		chkMatchEnable1.Enabled := False;
		chkOverflow1.Enabled := False;
		PanelBit1.Enabled := False;
		optRising1.Enabled := False;
		optFalling1.Enabled := False;
     End
end;

procedure TfrmCounter.chkBitEnable0Click(Sender: TObject);
begin
	if chkBitEnable0.State = cbChecked Then
     Begin
   	EnableMask := EnableMask or $01;
      txtPresetValue0.Enabled := True;
		chkMatchEnable0.Enabled := True;
		chkOverflow0.Enabled := True;
		PanelBit0.Enabled := True;

⌨️ 快捷键说明

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