⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 该源代码是有关modem 拨号
💻 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 + -