📄 main.pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ComCtrls, TAPILine, StdCtrls, ExtCtrls, Buttons, TLTapi;
type
TformMain = class(TForm)
StatusBar1: TStatusBar;
MainMenu1: TMainMenu;
File1: TMenuItem;
Modem1: TMenuItem;
About1: TMenuItem;
Exit1: TMenuItem;
Options1: TMenuItem;
Howtodial1: TMenuItem;
Configuration1: TMenuItem;
N1: TMenuItem;
TAPILine: TTAPILine;
Panel2: TPanel;
StatusListBox: TListBox;
GroupBox1: TGroupBox;
DialButton: TSpeedButton;
Label1: TLabel;
PhoneNumber: TEdit;
GroupBox3: TGroupBox;
RecordSoundButton: TSpeedButton;
PlaySoundButton: TSpeedButton;
GroupBox4: TGroupBox;
MonitorDigits: TCheckBox;
GroupBox5: TGroupBox;
SpeedButton1: TSpeedButton;
RedirectPhone: TEdit;
SpeedButton2: TSpeedButton;
LineActions: TGroupBox;
LineOpen: TSpeedButton;
LineClose: TSpeedButton;
GroupBox2: TGroupBox;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
ConsultCallEdit: TEdit;
SpeedButton5: TSpeedButton;
Stop: TSpeedButton;
PauseButton: TSpeedButton;
Label2: TLabel;
Label3: TLabel;
FileToRecord: TEdit;
FileToPlay: TEdit;
Label4: TLabel;
ResumeButton: TSpeedButton;
DigitsEdit: TEdit;
SpeedButton6: TSpeedButton;
procedure Exit1Click(Sender: TObject);
procedure Options1Click(Sender: TObject);
procedure Howtodial1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Configuration1Click(Sender: TObject);
procedure Connect1Click(Sender: TObject);
procedure Disconnect1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure TAPILineCallerID(Sender: TObject; ID, IDName: String);
// procedure TAPILineStatusMessage(Severity, ErrorID: Cardinal;
// MsgStr: String);
procedure RecordSoundButtonClick(Sender: TObject);
procedure PlaySoundButtonClick(Sender: TObject);
procedure MonitorDigitsClick(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure LineOpenClick(Sender: TObject);
procedure LineCloseClick(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure TAPILineStatusMessage(Severity: TStatusMessageSeverity;
ErrorID: Cardinal; MsgStr: String);
procedure StopClick(Sender: TObject);
procedure PauseButtonClick(Sender: TObject);
procedure TAPILineSoundPlayed(Sender: TObject);
procedure ResumeButtonClick(Sender: TObject);
procedure TAPILineDigit(Sender: TObject; var Digits: String;
Digit: Char);
procedure SpeedButton6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
formMain: TformMain;
implementation
uses Options, About;
{$R *.DFM}
procedure TformMain.Exit1Click(Sender: TObject);
begin
Close;
end;
procedure TformMain.Options1Click(Sender: TObject);
begin
if formOptions = nil Then
formOptions := TformOptions.Create (self);
formOptions.ShowModal;
LineOpenClick(nil);
end;
procedure TformMain.Howtodial1Click(Sender: TObject);
begin
TAPILine.TranslateDialog;
end;
procedure TformMain.FormCreate(Sender: TObject);
begin
Options1Click (nil);
LineActions.Caption := TAPILine.ActiveLineName;
end;
procedure TformMain.Configuration1Click(Sender: TObject);
begin
TAPILine.ConfigDialog;
end;
procedure TformMain.Connect1Click(Sender: TObject);
begin
TAPILine.MakeCall(PhoneNumber.Text);
end;
procedure TformMain.Disconnect1Click(Sender: TObject);
begin
if TAPILine.CallList.Count>0 then
TAPILine.Drop(TAPILine.CallList.GetAvailableCallObj);
end;
procedure TformMain.FormDestroy(Sender: TObject);
begin
TAPILine.Free;
end;
procedure TformMain.About1Click(Sender: TObject);
begin
AboutBox := TAboutBox.Create (self);
AboutBox.ShowModal;
AboutBox.Free;
end;
procedure TformMain.SpeedButton1Click(Sender: TObject);
begin
TAPILine.Redirect(RedirectPhone.Text);
end;
procedure TformMain.TAPILineCallerID(Sender: TObject; ID, IDName: String);
begin
if IDName = '' then
StatusBar1.Panels[2].Text:=IDName+', '+ID
else
StatusBar1.Panels[2].Text:=ID;
end;
procedure TformMain.RecordSoundButtonClick(Sender: TObject);
begin
TAPILine.SoundRecord(FileToRecord.Text);
end;
procedure TformMain.PlaySoundButtonClick(Sender: TObject);
begin
TAPILine.SoundPlay(FileToPlay.Text);
end;
procedure TformMain.MonitorDigitsClick(Sender: TObject);
begin
if MonitorDigits.Checked then
TAPILine.SetMonitorDigits
else
TAPILine.StopMonitorDigits
end;
procedure TformMain.SpeedButton2Click(Sender: TObject);
begin
TAPILine.BlindTransfer(RedirectPhone.Text);
end;
procedure TformMain.LineOpenClick(Sender: TObject);
begin
try
TAPILine.Open;
except
on E:Exception do
ShowMessage (E.Message);
end;
LineOpen.Enabled := False;
LineClose.Enabled := True;
if tloMonitorDigits in TAPILine.Options then
MonitorDigits.Enabled := True
else
MonitorDigits.Enabled := False;
end;
procedure TformMain.LineCloseClick(Sender: TObject);
begin
TAPIline.Close;
LineOpen.Enabled := True;
LineClose.Enabled := False;
end;
procedure TformMain.SpeedButton3Click(Sender: TObject);
begin
TAPILine.SetupTransfer(ConsultCallEdit.Text);
end;
procedure TformMain.SpeedButton4Click(Sender: TObject);
begin
TAPILine.CompleteTransfer(ctmTransfer);
end;
procedure TformMain.SpeedButton5Click(Sender: TObject);
begin
TAPILine.CompleteTransfer(ctmConference);
end;
procedure TformMain.TAPILineStatusMessage(Severity: TStatusMessageSeverity;
ErrorID: Cardinal; MsgStr: String);
Var
Msg : string;
begin
Msg := '<'+DateTimeToStr (Now)+'> ';
case Severity of
smsError: StatusListBox.Items.Add(Msg+'ERROR: '+MsgStr);
smsDebug: StatusListBox.Items.Add(Msg+MsgStr);
smsStatus:
Begin
StatusListBox.Items.Add(Msg+MsgStr);
StatusBar1.Panels[0].Text := MsgStr;
end;
smsClock: StatusBar1.Panels[1].Text := MsgStr;
end;
end;
procedure TformMain.StopClick(Sender: TObject);
begin
TAPILine.SoundStop;
end;
procedure TformMain.PauseButtonClick(Sender: TObject);
begin
if not TAPILine.Audio.IsPaused then
begin
TAPILine.SoundPause;
PauseButton.Down := TAPILine.Audio.IsPaused;
end;
end;
procedure TformMain.TAPILineSoundPlayed(Sender: TObject);
begin
TAPILineStatusMessage(smsStatus, 0, 'Plaing of '+FileToPlay.Text+' complete!');
end;
procedure TformMain.ResumeButtonClick(Sender: TObject);
begin
if TAPILine.Audio.IsPaused then
begin
TAPILine.SoundPause;
ResumeButton.Down := False;
PauseButton.Down := False;
end;
end;
procedure TformMain.TAPILineDigit(Sender: TObject; var Digits: String;
Digit: Char);
begin
TAPILineStatusMessage(smsStatus, 0, 'Digit '+Digit+' and string is '+Digits);
end;
procedure TformMain.SpeedButton6Click(Sender: TObject);
begin
TAPILine.GenerateDigits(DigitsEdit.Text);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -