📄 main.pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DAQPulseLib_TLB, OleCtrls, StdCtrls, ExtCtrls;
type
TfrmMain = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
cmdSelectDevice: TButton;
txtDeviceNum: TEdit;
txtDeviceName: TEdit;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
cmdStart: TButton;
cmdStop: TButton;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
txtChannel: TEdit;
txtPeriod: TEdit;
txtUpCycle: TEdit;
cmbGateMode: TComboBox;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
txtErrCde: TEdit;
txtErrMsg: TEdit;
Timer1: TTimer;
cmdExit: TButton;
DAQPulse1: TDAQPulse;
Label11: TLabel;
procedure cmdExitClick(Sender: TObject);
procedure cmdSelectDeviceClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure txtChannelChange(Sender: TObject);
procedure txtPeriodChange(Sender: TObject);
procedure txtUpCycleChange(Sender: TObject);
procedure cmbGateModeChange(Sender: TObject);
procedure cmdStartClick(Sender: TObject);
procedure cmdStopClick(Sender: TObject);
procedure txtDeviceNumChange(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.DFM}
procedure ErrorMsgBox( sErrMsg : WideString);
var
sErrString : String[51];
sCaption : String[51];
begin
sErrString := sErrMsg + Char(0);
sCaption := frmMain.Caption + ' Error' + Char(0);
Application.MessageBox(@sErrString, @sCaption, MB_OK or MB_ICONEXCLAMATION);
end;
procedure TfrmMain.cmdExitClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TfrmMain.cmdSelectDeviceClick(Sender: TObject);
begin
DAQPulse1.SelectDevice;
txtDeviceNum.Text := IntToStr(DAQPulse1.DeviceNumber);
txtDeviceName.Text := DAQPulse1.DeviceName;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
cmdSelectDeviceClick(Sender);
txtDeviceNum.Text := IntToStr(DAQPulse1.DeviceNumber);
txtChannel.Text := IntToStr(DAQPulse1.Channel);
cmbGateMode.ItemIndex := DAQPulse1.GateMode;
txtPeriod.Text := CurrToStr(DAQPulse1.PulsePeriod);
end;
procedure TfrmMain.txtChannelChange(Sender: TObject);
begin
DAQPulse1.Channel := StrToInt(txtChannel.Text);
end;
procedure TfrmMain.txtPeriodChange(Sender: TObject);
begin
DAQPulse1.PulsePeriod := StrToCurr(txtPeriod.Text);
end;
procedure TfrmMain.txtUpCycleChange(Sender: TObject);
begin
DAQPulse1.PulseUpCycle := StrToFloat(txtUpCycle.Text);
end;
procedure TfrmMain.cmbGateModeChange(Sender: TObject);
begin
DAQPulse1.GateMode := cmbGateMode.ItemIndex;
end;
procedure TfrmMain.cmdStartClick(Sender: TObject);
begin
If DAQPulse1.OpenDevice Then
Begin
ErrorMsgBox(DAQPulse1.ErrorMessage);
Exit;
end;
DAQPulse1.Channel := StrToInt(txtChannel.Text);
DAQPulse1.PulsePeriod := StrToCurr(txtPeriod.Text);
DAQPulse1.PulseUpCycle := StrToCurr(txtUpCycle.Text);
DAQPulse1.GateMode := cmbGateMode.ItemIndex;
DAQPulse1.EnablePulseOut(True);
cmdExit.Enabled := False;
cmdStart.Enabled := False;
cmdStop.Enabled := True;
cmdSelectDevice.Enabled := False;
Timer1.Enabled := True;
end;
procedure TfrmMain.cmdStopClick(Sender: TObject);
begin
DAQPulse1.EnablePulseOut(False);
cmdStop.Enabled := False;
cmdStart.Enabled := True;
cmdExit.Enabled := True;
cmdSelectDevice.Enabled := True;
Timer1.Enabled := False;
If DAQPulse1.CloseDevice Then
Begin
ErrorMsgBox(DAQPulse1.ErrorMessage);
Exit;
end;
end;
procedure TfrmMain.txtDeviceNumChange(Sender: TObject);
begin
DAQPulse1.DeviceNumber := StrToInt(txtDeviceNum.Text);
txtDeviceName.Text := DAQPulse1.DeviceName;
end;
procedure TfrmMain.Timer1Timer(Sender: TObject);
begin
txtErrCde.Text := IntToStr(DAQPulse1.ErrorCode);
txtErrMsg.Text := DAQPulse1.ErrorMessage;
end;
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DAQPulse1.EnablePulseOut(False);
Timer1.Enabled := False;
DAQPulse1.CloseDevice;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -