📄 main.pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, ComCtrls;
type
TMainForm = class(TForm)
ChannelListView: TListView;
Timer1: TTimer;
Label2: TLabel;
ComCur_Line: TComboBox;
SetListen: TBitBtn;
UnSetListen: TBitBtn;
Play: TBitBtn;
StopPlay: TBitBtn;
CommandExit: TBitBtn;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
procedure CommandExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure SetListenClick(Sender: TObject);
procedure UnSetListenClick(Sender: TObject);
procedure PlayClick(Sender: TObject);
procedure StopPlayClick(Sender: TObject);
procedure ComCur_LineChange(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
uses RecordFunc,Shpa3api;
{$R *.DFM}
procedure TMainForm.CommandExitClick(Sender: TObject);
begin
close();
end;
procedure TMainForm.FormShow(Sender: TObject);
var
I : integer;
//ListItem: TListItem;
begin
if not InitCtiSystem() then
Close();
for i:=0 to MaxLine-1 do
ComCur_Line.Items.Add(IntToStr(i));
ListenChannel:=MaxLine;
ComCur_Line.Text:=IntToStr(0);
InitTrkChannelList();
InitChannelState();
Timer1.Enabled:=true;
end;
/////////////////////////
procedure TMainForm.FormDestroy(Sender: TObject);
begin
SsmCloseCti();
end;
/////////////////////////
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
ScanChannelState();
UpdateChannelState();
end;
/////////////////////
procedure TMainForm.UnSetListenClick(Sender: TObject);
begin
ChannelState[ListenChannel].ListenState :=NoListen;
ListenChannel:=MaxLine;
end;
//////////
procedure TMainForm.SetListenClick(Sender: TObject);
var
CurLine:Integer;
begin
CurLine:=StrToInt(ComCur_Line.Text );
if ListenChannel<> CurLine then
begin
ChannelState[CurLine].ListenState :=Listen;
if ListenChannel<MaxLine then ChannelState[ListenChannel].ListenState :=NoListen;
ListenChannel:=CurLine;
end;
end;
/////////////
procedure TMainForm.PlayClick(Sender: TObject);
var
ErrMsg:PChar;
begin
If ((SsmPlayFile(0, 'test.wav', -1, 0,$ffffffff)) = -1) Then
begin
GetMem(ErrMsg,200);
SsmGetLastErrMsg(ErrMsg); //取得初始化出错信息
Application.MessageBox(ErrMsg,'错误', MB_OK );
FreeMem(ErrMsg);
end;
end;
//////////////////////////
procedure TMainForm.StopPlayClick(Sender: TObject);
var
ErrMsg:PChar;
begin
if (SsmCheckPlay(0)=0)and(SsmStopPlayFile(0)=-1)or(SsmCheckPlay(0)=-1) then
begin
GetMem(ErrMsg,200);
SsmGetLastErrMsg(ErrMsg); //取得放音出错信息
Application.MessageBox(ErrMsg,'错误', MB_OK );
FreeMem(ErrMsg);
end;
end;
/////////////////////
procedure TMainForm.ComCur_LineChange(Sender: TObject);
VAR
CurLine : integer;
begin
CurLine:=StrToInt(ComCur_Line.Text );
if ChannelState[CurLine].ConState =SHENGKONG then
RadioButton1.Checked :=true;
if ChannelState[CurLine].ConState =YAKONG then
RadioButton2.Checked :=true;
if ChannelState[CurLine].ConState =MAKONG then
RadioButton2.Checked :=true;
end;
procedure TMainForm.RadioButton1Click(Sender: TObject);
VAR
CurLine : integer;
begin
CurLine:=StrToInt(ComCur_Line.Text );
ChannelState[CurLine].ConState:=SHENGKONG;
end;
procedure TMainForm.RadioButton2Click(Sender: TObject);
VAR
CurLine : integer;
begin
CurLine:=StrToInt(ComCur_Line.Text );
ChannelState[CurLine].ConState:=YAKONG;
end;
procedure TMainForm.RadioButton3Click(Sender: TObject);
var
CurLine : integer;
begin
CurLine:=StrToInt(ComCur_Line.Text );
ChannelState[CurLine].ConState:=MAKONG;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -