Mega Code Archive

 
Categories / Delphi / Hardware
 

Modemle tel ara

NUH EROĞLU ComPort - Set a communication port of your modem (dpCom1..dpCom4); Confirm - true if you wish dialer to ask you if you are sure to dial the number; Method - Dialing method - Pulse or Tone NumberToDial - string, which contains Phone Number you wish to dial e.g. '911' :) You can set these properties from Object Inspector or during the run-time. There is one public procedure: Execute After you add an icon representing dialer, you can use TButton component to run it. e.g. procedure TForm1.Button1Click(Sender: TObject); begin Dialer1.Execute; end; You can create the Dialer component "On Fly", without adding its icon to your form: procedure TForm1.Button1Click(Sender: TObject); var TempDialer : TDialer; begin TempDialer:=TDialer.Create(Self); with TempDialer do begin ComPort:=dpCom4; Confirm:=true; Method:=dmTone; NumberToDial:='1(222)333-4444'; Execute; Free; end; end; In this case don't forget to add to your uses statement Dialer unit. To install this control in you VCL place it in your C:\DELPHI\LIB directory and from IDE Options Menu select Install Components. In the Install Components dialog box click Add Button, then in Add Module box type C:\DELPHI\LIB\DIALER.PAS, click OK, then in the Install Components Dialog box click OK again and wait a while. Dialer icon will appear in the Samples section of your Components Palette. unit Dialer; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs; type TComPort = (dpCOM1,dpCOM2,dpCOM3,dpCOM4); TMethod = (dmTone,dmPulse); TDialer = class(TComponent) private { Private declarations } FComPort : TComPort; FNumberToDial : string; FConfirm : boolean; FMethod : TMethod; protected { Protected declarations } public { Public declarations } procedure Execute; published property ComPort : TComPort read FComPort write FComPort; property Confirm : boolean read FConfirm write FConfirm; property Method : TMethod read FMethod write FMethod; property NumberToDial : string read FNumberToDial write FNumberToDial; { Published declarations } end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TDialer]); end; procedure TDialer.Execute; var s : string; CId : Integer; Status : Integer; Buf : array[1..32] of Char; begin if FConfirm then begin if MessageDlg('About to dial the number '+FNumberToDial+'. Are you sure?', mtConfirmation, [mbYes,mbNo], 0)=mrNo then Exit; end; {Create a string to send to modem} s:=Concat('ATDT',FNumberToDial,^M^J); if FMethod=dmPulse then s[4]:='P'; {Open Com Port} StrPCopy(@Buf,'COM '); Buf[4]:=Chr(49+Ord(FComPort)); CId:=OpenComm(@Buf,512,512); if CId<0 then begin MessageDlg('Unable to open '+StrPas(@Buf),mtError, [mbOk], 0); Exit; end; {Send phone number to modem} StrPCopy(@Buf,s); Status:=WriteComm(CId,@Buf,StrLen(@Buf)); if Status>=0 then begin MessageDlg('Pick up the phone',mtInformation, [mbOk], 0); WriteComm(CId,'ATH'^M^J,5); end else MessageDlg('Unable to dial number',mtError, [mbOk], 0); {Close communication port} CloseComm(CId); end; end.