📄 formrun.pas
字号:
unit formrun;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Driver, Global, Menus;
type
Tfrmrun = class(TForm)
GroupSample: TGroupBox;
PictureBit0: Timage;
PictureBit1: TImage;
PictureBit2: TImage;
PictureBit3: TImage;
PictureBit4: TImage;
PictureBit5: TImage;
PictureBit7: TImage;
labBit0: TLabel;
labBit1: TLabel;
labBit2: TLabel;
labBit3: TLabel;
labBit4: TLabel;
labBit5: TLabel;
labBit6: TLabel;
labBit7: TLabel;
CmdRead: TButton;
frmSampleRate: TGroupBox;
tmrRead: TTimer;
hscrFreq: TScrollBar;
labStart: TLabel;
labEnd: TLabel;
PictureBit6: TImage;
CmdExit: TButton;
procedure FormCreate(Sender: TObject);
procedure tmrReadTimer(Sender: TObject);
procedure CmdReadClick(Sender: TObject);
procedure hscrFreqChange(Sender: TObject);
procedure CmdExitClick(Sender: TObject);
private
{ Private declarations }
DiValue : Smallint;
procedure UpdateLED;
public
{ Public declarations }
end;
var
frmrun: Tfrmrun;
implementation
uses formstar;
const
LedON = True;
LedOFF = False;
var
Response : Integer;
{$R *.DFM}
procedure Tfrmrun.UpdateLED;
var
LedStatus, tempBit, value : Smallint;
begin
value := DiValue;
{ Check every Digtial data bit }
For tempBit := 0 To 7 do
begin
LedStatus := value mod 2;
value := value div 2;
if LedStatus = 1 then
begin
case tempBit of
0 : PictureBit0.Visible := True;
1 : PictureBit1.Visible := True;
2 : PictureBit2.Visible := True;
3 : PictureBit3.Visible := True;
4 : PictureBit4.Visible := True;
5 : PictureBit5.Visible := True;
6 : PictureBit6.Visible := True;
7 : PictureBit7.Visible := True;
end;
end
else
begin
case tempBit of
0 : PictureBit0.Visible := False;
1 : PictureBit1.Visible := False;
2 : PictureBit2.Visible := False;
3 : PictureBit3.Visible := False;
4 : PictureBit4.Visible := False;
5 : PictureBit5.Visible := False;
6 : PictureBit6.Visible := False;
7 : PictureBit7.Visible := False;
end;
end;
end;
end;
procedure Tfrmrun.FormCreate(Sender: TObject);
begin
DiValue := 0;
tmrRead.Enabled := False;
hscrFreq.Position := 0;
end;
procedure Tfrmrun.tmrReadTimer(Sender: TObject);
begin
lpDioReadPort.port := lpDioPortMode.port;
lpDioReadPort.value := @DiValue;
ErrCde := DRV_DioReadPortByte(DeviceHandle, lpDioReadPort);
If (ErrCde <> 0) Then
begin
DRV_GetErrorMessage(ErrCde, pszErrMsg);
Response := Application.MessageBox(pszErrMsg, 'Error!!', MB_OK);
Exit;
end;
UpdateLed;
end;
procedure Tfrmrun.CmdReadClick(Sender: TObject);
begin
tmrRead.Enabled := False;
lpDioReadPort.port := lpDioPortMode.port;
lpDioReadPort.value := @DiValue;
ErrCde := DRV_DioReadPortByte(DeviceHandle, lpDioReadPort);
If (ErrCde <> 0) Then
begin
DRV_GetErrorMessage(ErrCde, pszErrMsg);
Response := Application.MessageBox(pszErrMsg, 'Error!!', MB_OK);
Exit;
end;
UpdateLed;
end;
procedure Tfrmrun.hscrFreqChange(Sender: TObject);
begin
if hscrFreq.Position = 0 then
tmrRead.Interval := 0
else
tmrRead.Interval := Trunc(10000 / hscrFreq.Position);
tmrRead.Enabled := True;
end;
procedure Tfrmrun.CmdExitClick(Sender: TObject);
begin
frmRun.Close;
Formstar.frmstart.Show;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -