www.pudn.com > telephonefordelphi.rar > AdTSel_My.pas


unit AdTSel_My; 
 
interface 
    
uses 
  WinProcs, 
  WinTypes, 
  Messages, 
  SysUtils, 
  Classes, 
  Controls, 
  Forms,registry, 
  Dialogs, 
  StdCtrls, 
  Buttons, 
  AwUser, 
  AdPort, 
  AdExcept, 
  AdTUtil, 
  OOMisc, 
  AdSelCom,AdTapi, 
  AwWin32, ExtCtrls; 
 
  function SelectDevice_My(ApdTapiDevice:TApdTapiDevice;wait:boolean;RegPath:string) : TModalResult; 
 
type 
  TDeviceSelectionForm_My = class(TForm) 
    dsfComboBox    : TComboBox; 
    dsfOkBitBtn    : TBitBtn; 
    dsfCancelBitBtn: TBitBtn; 
    Timer1: TTimer; 
    procedure dsfOkBitBtnClick(Sender: TObject); 
    procedure dsfCancelBitBtnClick(Sender: TObject); 
    procedure Timer1Timer(Sender: TObject); 
  private 
  public 
  end; 
 
var 
  DeviceSelectionForm_My: TDeviceSelectionForm_My; 
 
implementation 
 
 
{$R *.DFM} 
 
function SelectDevice_My(ApdTapiDevice:TApdTapiDevice;wait:boolean;RegPath:string):TModalResult; 
var 
    E:TDeviceSelectionForm_My; 
    reg:TRegistry; 
    DeviceName:string; 
begin 
    if ApdTapiDevice.TapiDevices.Count=0 then 
    begin 
       Result := mrCancel; 
       exit; 
    end; 
     
    E := TDeviceSelectionForm_My.Create(Application); 
 
    E.dsfComboBox.items:=ApdTapiDevice.TapiDevices; 
    E.dsfComboBox.itemindex:=0; 
     
    reg:=Tregistry.create; 
    reg.RootKey:=HKEY_LOCAL_MACHINE; 
    reg.OpenKey(regpath,true); 
    if reg.ValueExists('Modem') then 
    begin 
       E.dsfComboBox.ItemIndex:=E.dsfComboBox.Items.IndexOf(reg.ReadString('Modem')); 
       if E.dsfComboBox.ItemIndex=-1 then 
          E.dsfComboBox.ItemIndex:=0 
       else 
          if not wait then E.timer1.enabled:=true; 
    end; 
    reg.closekey; 
    reg.free; 
 
    try 
      if E.ShowModal = mrOK then 
      begin 
         DeviceName := E.dsfComboBox.Items[E.dsfComboBox.ItemIndex]; 
         reg:=Tregistry.create; 
         reg.RootKey:=HKEY_LOCAL_MACHINE; 
         reg.OpenKey(regpath,true); 
         reg.writestring('Modem',DeviceName); 
         reg.closekey; 
         reg.free; 
 
         ApdTapiDevice.SelectedDevice := DeviceName; 
         Result := mrOK; 
      end 
      else 
        Result := mrCancel; 
    finally 
      E.Free; 
    end; 
end; 
 
procedure TDeviceSelectionForm_My.dsfOkBitBtnClick(Sender: TObject); 
begin 
    if dsfComboBox.ItemIndex=-1 then exit; 
    ModalResult := mrOK; 
end; 
 
procedure TDeviceSelectionForm_My.dsfCancelBitBtnClick(Sender: TObject); 
begin 
    ModalResult := mrCancel; 
end; 
 
procedure TDeviceSelectionForm_My.Timer1Timer(Sender: TObject); 
begin 
    dsfOkBitBtnClick(Sender); 
end; 
 
end.