📄 formcoun.pas
字号:
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 + -