displayform.pas
来自「16 relay output channels and 16 isolated」· PAS 代码 · 共 105 行
PAS
105 行
unit DisplayForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Global, Driver;
type
TfrmDisplay = class(TForm)
Bevel1: TBevel;
Label1: TLabel;
Label2: TLabel;
trbTimer: TTrackBar;
btnExit: TButton;
ScanTimer: TTimer;
shapLed: TShape;
procedure ScanTimerTimer(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure trbTimerChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmDisplay: TfrmDisplay;
implementation
{$R *.dfm}
procedure TfrmDisplay.ScanTimerTimer(Sender: TObject);
var
i : integer;
strTemp : string;
begin
if(shapLed.Brush.Color = clRed ) then
shapLed.Brush.Color := clGray
else
shapLed.Brush.Color := clRed;
ptMAIVoltageIn.NumChan := ptMAIConfig.NumChan;
ptMAIVoltageIn.StartChan := ptMAIConfig.StartChan;
ptMAIVoltageIn.GainArray := @usGainCode[0];
ptMAIVoltageIn.TrigMode := AiCtrMode; { external trigger }
{ if MAIVoltageIn.Voltage doesn't point to a array, then it would be nil. }
ptMAIVoltageIn.VoltageArray := @fVoltage[ptMAIConfig.StartChan];
ErrCde := DRV_MAIVoltageIn(DeviceHandle, ptMAIVoltageIn);
If (ErrCde <> 0) Then
begin
DRV_GetErrorMessage(ErrCde, pszErrMsg);
Application.MessageBox(pszErrMsg, 'Error!!', MB_OK);
DRV_DeviceClose(DeviceHandle);
ScanTimer.Enabled := false;
Exit;
end;
Canvas.Font.Color := clBlue;
{ for i := ptMAIConfig.StartChan to ptMAIConfig.StartChan + ptMAIConfig.NumChan - 1 do}
for i := 0 to ptMAIConfig.NumChan - 1 do
begin
strTemp := 'Chan '+ IntToStr(i + ptMAIConfig.StartChan);
strTemp := strTemp + ': ';
strTemp := strTemp + FloatToStrF(fVoltage[i + ptMAIConfig.StartChan], ffFixed, 6, 6);
strTemp := strTemp + ' V';
Canvas.TextOut(20+(i div 8)*110,100+(i mod 8)*20,strTemp);
end;
end;
procedure TfrmDisplay.btnExitClick(Sender: TObject);
begin
Close();
end;
procedure TfrmDisplay.trbTimerChange(Sender: TObject);
begin
if( trbTimer.Position > 0 ) then
begin
ScanTimer.Interval := 1000 div trbTimer.Position;
ScanTimer.Enabled := true;
end
else
begin
ScanTimer.Enabled := false;
end;
end;
procedure TfrmDisplay.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ScanTimer.Enabled := false;
DRV_DeviceClose(DeviceHandle);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?