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

📄 dialerform.~pa

📁 功能全面的商业财会系统源码,清晰,很有参考价值.扩展性强.
💻 ~PA
字号:
unit DialerForm;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, 
  Buttons, ExtCtrls, IniFiles, Dialogs, WinTypes, WinProcs, Messages;

type
  TComPort = (dpCOM1,dpCOM2,dpCOM3,dpCOM4);
  TfrmDialer = class(TForm)
    btnOK: TButton;
    btnCancel: TButton;
    Label1: TLabel;
    btnSetup: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure btnSetupClick(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
  private
    FComPort : TComPort;
    FNumberToDial: string;
    FNameToDial: string;
  public
    property NumberToDial : string read FNumberToDial write FNumberToDial;
    property NameToDial : string read FNameToDial write FNameToDial;
  end;

var
  frmDialer: TfrmDialer;

implementation

uses DialerSetupForm;

{$R *.DFM}

procedure TfrmDialer.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  btnOK.setfocus;
end;

procedure TfrmDialer.FormShow(Sender: TObject);
begin
  label1.caption := 'Phone ' + '''' + FNameToDial + '''' + #13 + 'at ' + FNumberToDial;
end;

procedure TfrmDialer.btnSetupClick(Sender: TObject);
begin
  application.createform (TfrmDialerSetup,frmDialerSetup);
  frmDialerSetup.ShowModal;
end;

procedure TfrmDialer.btnOKClick(Sender: TObject);
var
  s		: string;
  hCommFile 	: THandle;
  Status 	: LongBool;
  NumberWritten	: DWORD;
  BS1ini: TIniFile;
  strPort: string;
begin
  if FNumberToDial = '' then exit;
  BS1Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'BS1.ini');   //Get port (override previous property).
  strPort := BS1Ini.ReadString('General', 'DialerPort', 'com1');
  BS1Ini.Free;
  if strPort = 'com1' then FComPort:=dpCom1
  else if strPort = 'com2' then FComPort:=dpCom2
  else if strPort = 'com3' then FComPort:=dpCom3
  else if strPort = 'com4' then FComPort:=dpCom4;
  s:='COM'+Chr(49+Ord(FComPort));   //Open Com Port.
  hCommFile:= CreateFile( PChar(s), GENERIC_WRITE,
                                0, {not shared}
                                nil, {no security ??}
                                OPEN_EXISTING,
                                FILE_ATTRIBUTE_NORMAL,
                                0 {template} );
  if hCommFile=INVALID_HANDLE_VALUE then begin
    MessageDlg('Unable to open '+s,mtError,[mbOk], 0);
    Exit;
  end;
  s:='ATDT'+FNumberToDial+#13+#10;   //Create a string to send to modem.
  NumberWritten:=0;   //Send phone number to modem.
  Status:=WriteFile( hCommFile,PChar(s)[0],
                     Length(s),
                     NumberWritten,
                     nil);
  if Status then begin
    Self.Hide;
    MessageDlg('Pick up the phone.' + #13 + 'Click OK after dialing has completed.',mtInformation,[mbOk], 0);
    WriteFile(hCommFile,'ATH'^M^J,5,NumberWritten,nil);
  end else MessageDlg('Unable to dial number.',mtError,[mbOk], 0);
  CloseHandle(hCommFile);   //Close communication port.
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -