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 + -
显示快捷键?