📄 pmcfg.pas
字号:
unit PMCfg;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;
type
TfPMConfig = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
chkEnablePA00: TCheckBox;
chkEnablePA01: TCheckBox;
chkEnablePA02: TCheckBox;
chkEnablePA03: TCheckBox;
chkEnablePA04: TCheckBox;
chkEnablePA05: TCheckBox;
chkEnablePA06: TCheckBox;
chkEnablePA07: TCheckBox;
Panel1: TPanel;
radHighPA00: TRadioButton;
radLowPA00: TRadioButton;
Panel2: TPanel;
radHighPA01: TRadioButton;
radLowPA01: TRadioButton;
Panel3: TPanel;
radHighPA02: TRadioButton;
radLowPA02: TRadioButton;
Panel4: TPanel;
radHighPA03: TRadioButton;
radLowPA03: TRadioButton;
Panel5: TPanel;
radHighPA04: TRadioButton;
radLowPA04: TRadioButton;
Panel6: TPanel;
radHighPA05: TRadioButton;
radLowPA05: TRadioButton;
Panel7: TPanel;
radHighPA06: TRadioButton;
radLowPA06: TRadioButton;
Panel8: TPanel;
radHighPA07: TRadioButton;
radLowPA07: TRadioButton;
Label10: TLabel;
Label11: TLabel;
GroupBox2: TGroupBox;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
chkEnablePA40: TCheckBox;
chkEnablePA41: TCheckBox;
chkEnablePA42: TCheckBox;
chkEnablePA43: TCheckBox;
chkEnablePA44: TCheckBox;
chkEnablePA45: TCheckBox;
chkEnablePA46: TCheckBox;
chkEnablePA47: TCheckBox;
Panel9: TPanel;
radHighPA40: TRadioButton;
radLowPA40: TRadioButton;
Panel10: TPanel;
radHighPA41: TRadioButton;
radLowPA41: TRadioButton;
Panel11: TPanel;
radHighPA42: TRadioButton;
radLowPA42: TRadioButton;
Panel12: TPanel;
radHighPA43: TRadioButton;
radLowPA43: TRadioButton;
Panel13: TPanel;
radHighPA44: TRadioButton;
radLowPA44: TRadioButton;
Panel14: TPanel;
radHighPA45: TRadioButton;
radLowPA45: TRadioButton;
Panel15: TPanel;
radHighPA46: TRadioButton;
radLowPA46: TRadioButton;
Panel16: TPanel;
radHighPA47: TRadioButton;
radLowPA47: TRadioButton;
cmdCancel: TButton;
cmdOk: TButton;
procedure chkEnablePAClick(iPort: Integer ; i : Integer);
procedure cmdCancelClick(Sender: TObject);
procedure cmdOkClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure chkEnablePA00Click(Sender: TObject);
procedure chkEnablePA01Click(Sender: TObject);
procedure chkEnablePA02Click(Sender: TObject);
procedure chkEnablePA03Click(Sender: TObject);
procedure chkEnablePA04Click(Sender: TObject);
procedure chkEnablePA05Click(Sender: TObject);
procedure chkEnablePA06Click(Sender: TObject);
procedure chkEnablePA07Click(Sender: TObject);
procedure chkEnablePA40Click(Sender: TObject);
procedure chkEnablePA41Click(Sender: TObject);
procedure chkEnablePA42Click(Sender: TObject);
procedure chkEnablePA43Click(Sender: TObject);
procedure chkEnablePA44Click(Sender: TObject);
procedure chkEnablePA45Click(Sender: TObject);
procedure chkEnablePA46Click(Sender: TObject);
procedure chkEnablePA47Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
pchkEnablePA : array[0..2,0..7] of ^TCheckBox;
pradHighPA : array[0..1,0..7] of ^TRadioButton;
pradLowPA : array[0..1,0..7] of ^TRadioButton;
public
{ Public declarations }
iPA0Value : Integer;
iPA0Mask : Integer;
iPA4Value : Integer;
iPA4Mask : Integer;
end;
var
fPMConfig: TfPMConfig;
implementation
{$R *.DFM}
procedure TfPMConfig.chkEnablePAClick(iPort: Integer; i : Integer);
Begin
pradHighPA[iPort][i]^.Enabled := pchkEnablePA[iPort][i]^.Checked;
pradLowPA[iPort][i]^.Enabled := pchkEnablePA[iPort][i]^.Checked;
End;
procedure TfPMConfig.cmdCancelClick(Sender: TObject);
begin
fPMConfig.Close;
end;
procedure TfPMConfig.cmdOkClick(Sender: TObject);
var
i, j, k : integer;
iMask, iValue : array[0..1] of integer;
begin
iMask[0] := 0;
iMask[1] := 0;
iValue[0] := 0;
iValue[1] := 0;
{Read user config}
for j := 0 to 1 do
begin
for k:=0 to 7 do
begin
{Shift 1 bit left}
i := 7 - k;
iMask[j] := iMask[j] * 2;
iValue[j] := iValue[j] * 2;
{read setting from configuration}
if pchkEnablePA[j][i]^.Checked = True then
iMask[j] := iMask[j] + 1;
if pradHighPA[j][i]^.Checked = True then
iValue[j] := iValue[j] + 1
end; {End of k Loop}
end; {End of j Loop}
iPA0Mask := iMask[0];
iPA4Mask := iMask[1];
iPA0Value := iValue[0];
iPA4Value := iValue[1];
fPMConfig.Close;
end;
procedure TfPMConfig.FormCreate(Sender: TObject);
begin
{PA0 }
pchkEnablePA[0][0] := @chkEnablePA00;
pchkEnablePA[0][1] := @chkEnablePA01;
pchkEnablePA[0][2] := @chkEnablePA02;
pchkEnablePA[0][3] := @chkEnablePA03;
pchkEnablePA[0][4] := @chkEnablePA04;
pchkEnablePA[0][5] := @chkEnablePA05;
pchkEnablePA[0][6] := @chkEnablePA06;
pchkEnablePA[0][7] := @chkEnablePA07;
pradHighPA[0][0] := @radHighPA00;
pradHighPA[0][1] := @radHighPA01;
pradHighPA[0][2] := @radHighPA02;
pradHighPA[0][3] := @radHighPA03;
pradHighPA[0][4] := @radHighPA04;
pradHighPA[0][5] := @radHighPA05;
pradHighPA[0][6] := @radHighPA06;
pradHighPA[0][7] := @radHighPA07;
pradLowPA[0][0] := @radLowPA00;
pradLowPA[0][1] := @radLowPA01;
pradLowPA[0][2] := @radLowPA02;
pradLowPA[0][3] := @radLowPA03;
pradLowPA[0][4] := @radLowPA04;
pradLowPA[0][5] := @radLowPA05;
pradLowPA[0][6] := @radLowPA06;
pradLowPA[0][7] := @radLowPA07;
{PA4}
pchkEnablePA[1][0] := @chkEnablePA40;
pchkEnablePA[1][1] := @chkEnablePA41;
pchkEnablePA[1][2] := @chkEnablePA42;
pchkEnablePA[1][3] := @chkEnablePA43;
pchkEnablePA[1][4] := @chkEnablePA44;
pchkEnablePA[1][5] := @chkEnablePA45;
pchkEnablePA[1][6] := @chkEnablePA46;
pchkEnablePA[1][7] := @chkEnablePA47;
pradHighPA[1][0] := @radHighPA40;
pradHighPA[1][1] := @radHighPA41;
pradHighPA[1][2] := @radHighPA42;
pradHighPA[1][3] := @radHighPA43;
pradHighPA[1][4] := @radHighPA44;
pradHighPA[1][5] := @radHighPA45;
pradHighPA[1][6] := @radHighPA46;
pradHighPA[1][7] := @radHighPA47;
pradLowPA[1][0] := @radLowPA40;
pradLowPA[1][1] := @radLowPA41;
pradLowPA[1][2] := @radLowPA42;
pradLowPA[1][3] := @radLowPA43;
pradLowPA[1][4] := @radLowPA44;
pradLowPA[1][5] := @radLowPA45;
pradLowPA[1][6] := @radLowPA46;
pradLowPA[1][7] := @radLowPA47;
end;
procedure TfPMConfig.chkEnablePA00Click(Sender: TObject);
begin
chkEnablePAClick(0,0);
end;
procedure TfPMConfig.chkEnablePA01Click(Sender: TObject);
begin
chkEnablePAClick(0,1);
end;
procedure TfPMConfig.chkEnablePA02Click(Sender: TObject);
begin
chkEnablePAClick(0,2);
end;
procedure TfPMConfig.chkEnablePA03Click(Sender: TObject);
begin
chkEnablePAClick(0,3);
end;
procedure TfPMConfig.chkEnablePA04Click(Sender: TObject);
begin
chkEnablePAClick(0,4);
end;
procedure TfPMConfig.chkEnablePA05Click(Sender: TObject);
begin
chkEnablePAClick(0,5);
end;
procedure TfPMConfig.chkEnablePA06Click(Sender: TObject);
begin
chkEnablePAClick(0,6);
end;
procedure TfPMConfig.chkEnablePA07Click(Sender: TObject);
begin
chkEnablePAClick(0,7);
end;
procedure TfPMConfig.chkEnablePA40Click(Sender: TObject);
begin
chkEnablePAClick(1,0);
end;
procedure TfPMConfig.chkEnablePA41Click(Sender: TObject);
begin
chkEnablePAClick(1,1);
end;
procedure TfPMConfig.chkEnablePA42Click(Sender: TObject);
begin
chkEnablePAClick(1,2);
end;
procedure TfPMConfig.chkEnablePA43Click(Sender: TObject);
begin
chkEnablePAClick(1,3);
end;
procedure TfPMConfig.chkEnablePA44Click(Sender: TObject);
begin
chkEnablePAClick(1,4);
end;
procedure TfPMConfig.chkEnablePA45Click(Sender: TObject);
begin
chkEnablePAClick(1,5);
end;
procedure TfPMConfig.chkEnablePA46Click(Sender: TObject);
begin
chkEnablePAClick(1,6);
end;
procedure TfPMConfig.chkEnablePA47Click(Sender: TObject);
begin
chkEnablePAClick(1,7);
end;
procedure TfPMConfig.FormActivate(Sender: TObject);
var
i , j : integer;
iValue, iMask : array[0..1] of integer;
begin
iValue[0] := iPA0Value;
iMask[0] := iPA0Mask;
iValue[1] := iPA4Value;
iMask[1] := iPA4Mask;
{Initialize PA0 and PA4 configure of user interface}
for j := 0 to 1 do
begin
For i := 0 to 7 do
begin
{Mask register config}
if (iMask[j] And 1) = 1 then
pchkEnablePA[j][i]^.Checked := True
else
pchkEnablePA[j][i]^.Checked := False;
chkEnablePAClick(j,i);
iMask[j] := iMask[j] div 2;
{Value register config}
if (iValue[j] And 1) = 1 then
begin
pradHighPA[j][i]^.Checked := True;
pradLowPA[j][i]^.Checked := False;
end
else
begin
pradHighPA[j][i]^.Checked := False;
pradLowPA[j][i]^.Checked := True;
end;
iValue[j] := iValue[j] div 2;
end; {End of i loop}
end; {End of j loop}
end;
End.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -