CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

关于mscomm控件的问题,,急

楼主godlessme(老万)2004-09-02 20:51:07 在 Delphi / VCL组件开发及应用 提问

已经正确的在系统中注册了控件。但是在使用的时候,怎么拨号猫都没有反应。我的初始化端口和猫的程序是这样写的:其中AXPHONE是控件的名字。端口是3,‘9600,n,8,1'  
  try  
      if   axphone.PortOpen   then  
          begin  
              axphone.PortOpen:=false;  
              sleep(1000);  
          end;  
      if   not   axphone.PortOpen   then  
          begin  
              axphone.PortOpen:=true;  
          end;  
      except  
      on   e:exception   do  
          begin  
          showmessage('MODEM   初始化失败,请重新拨号');  
          initmodem;  
          end;  
      end;  
   
      axphone.InBufferCount:=0;  
      axphone.InputLen:=0;  
      axphone.RThreshold:=1;  
      axphone.DTREnable:=true;  
      axphone.RTSEnable:=true;  
      axphone.Output:='ATE1M0Q0S0=3V1X4&C1&D3&K0&S0'+CHR(13);  
     
  拨号一直没有反应。  
  问题点数:60、回复次数:4Top

1 楼Jeff20040819(美丽)回复于 2004-09-02 21:11:31 得分 60

sleep(1000);波特率为9600,时间太长,改为sleep(200);但这应该不是原因  
  可能还是端口参数不对把  
  学习  
   
  Top

2 楼godlessme(老万)回复于 2004-09-02 21:36:49 得分 0

端口参数没有错,很多例子都是这么写的。看来平常用到这个的太少了,真实郁闷啊。Top

3 楼godlessme(老万)回复于 2004-09-02 21:49:48 得分 0

大家来顶啊,来了就有分。Top

4 楼godlessme(老万)回复于 2004-09-03 02:23:39 得分 0

问题我自己解决了,可是又不能自己把帖子删掉。真实郁闷!把代码贴出来,不过只有拨号和挂断功能,其他比较详细的都还没有做,比如说对方忙,对方先挂断,等等,不过剩下的都不是问题了。  
  Jeff20040819(最爱Delphi,C#——苦练内功中),你运气好,要是我结贴时候只有你一个人顶的话,只好把两个帖子的160分都给你了。  
   
  unit   call_out;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   OleCtrls,   MSCommLib_TLB,   StdCtrls;  
   
  type  
      TForm1   =   class(TForm)  
          AXPhone:   TMSComm;  
          Edit1:   TEdit;  
          Label1:   TLabel;  
          Button1:   TButton;  
          Button2:   TButton;  
          Label2:   TLabel;  
          Label3:   TLabel;  
          Edit2:   TEdit;  
          Label4:   TLabel;  
          procedure   FormCreate(Sender:   TObject);  
          procedure   Button1Click(Sender:   TObject);  
          procedure   AXPhoneComm(Sender:   TObject);  
          procedure   Button2Click(Sender:   TObject);  
      private  
          call_num:integer;  
          procedure   InitModem;  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.dfm}  
   
  procedure   TForm1.InitModem;  
  begin  
      try  
      if   axphone.PortOpen   then  
          begin  
              axphone.PortOpen:=false;  
              //sleep(1000);  
          end;  
      if   not   axphone.PortOpen   then  
          begin  
              axphone.PortOpen:=true;  
          end;  
      except  
      on   e:exception   do  
          begin  
          showmessage('MODEM   初始化失败,请重新拨号');  
        //   initmodem;  
          end;  
      end;  
      axphone.InBufferCount:=0;  
      axphone.InputLen:=0;  
      axphone.RThreshold:=1;  
      axphone.DTREnable:=true;   //是否使DTR信号线有效,DTR  
                                                          //指示计算机在等待接受传输  
      axphone.RTSEnable:=true;  
    //   axphone.Output:='+++';  
    //   sleep(1000);  
      //axphone.OutBufferCount:=0;  
      //axphone.Output:='ATE1m1Q0S0=3V1X4&C1&D3&K0&S0#10#13';  
   
   
  end;  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
      call_num:=0;  
      self.InitModem;  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
      if   call_num>=1   then  
          initmodem;  
      {if   axphone.PortOpen=true   then  
          showmessage('ok');   }  
      axphone.OutBufferCount:=0;  
      if   edit2.Text=''   then                 //检测分机号码是否为空  
          axphone.Output:='ATDT'+trim(edit1.Text)   +   chr(13)  
      else  
          axphone.Output:='ATDT'+trim(edit1.Text)+',,'+trim(edit2.Text)+chr(13);  
      call_num:=call_num+1;  
      //showmessage(inttostr(axphone.OutBufferCount));  
          label3.Caption:='正在拨号中';  
          if   axphone.CDHolding   then   //检测该属性确定是否正在通话中  
              label3.Caption:='通话中';  
   
          {if   axphone.CTSHolding   then   //确定是否可以发送数据  
              showmessage('可以发送数据');     }  
   
          //showmessage(inttostr(axphone.commid));//返回控件的句柄  
   
          //showmessage(inttostr(axphone.CommPort));返回端口号  
   
          {if   axphone.DSRHolding   then           //检测是否做好操作准备,由  
              showmessage('作好操作准备');   //modem向计算机发出     }  
   
              //showmessage('输出缓冲字符数:'+inttostr(axphone.OutBufferCount));  
          end;  
   
  procedure   TForm1.AXPhoneComm(Sender:   TObject);  
  begin  
      case   axphone.CommEvent   of  
          1001:   ;  
      end;  
  end;  
   
  procedure   TForm1.Button2Click(Sender:   TObject);  
  begin  
      axphone.OutBufferCount:=0;  
      axphone.Output:='+++'   +   chr(13);  
      axphone.Output:='ATH'   +   chr(13);  
      axphone.PortOpen   :=   false;  
  end;  
   
  end.Top

相关问题

  • 求mscomm控件
  • ***还是Mscomm控件***
  • 关于mscomm控件
  • 关于MSComm控件
  • mscomm控件问题?
  • mscomm控件求救!!
  • mscomm控件求救!!
  • MSComm控件问题!~~~
  • 关于MSComm控件
  • 关于MSComm控件

关键词

  • 控件
  • 端口
  • sleep
  • axphone
  • initmodem
  • portopen
  • outbuffercount
  • 拨号
  • 初始化
  • tlabel

得分解答快速导航

  • 帖主:godlessme
  • Jeff20040819

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo