delphi中的ApdComPort控件在哪,谢谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中的ApdComPort控件在哪,谢谢相关的知识,希望对你有一定的参考价值。
http://jaist.dl.sourceforge.net/sourceforge/tpapro/tpapro_4_06.zip另外,下面的信息也许对你有帮助
TApdComPort控件重要属性介绍:
1》AutoOpen属性
决定了端口是否按要求自动打开;如果为True,并且存取了一个要求具有打开串口的方法或属性,TApdComPort控件将自动打开串口,如果是False,端口必须明确的地开(通过设置Open属性为True).
2》TapiMode属性
决定TApdTapiDevice控件是否控制TApdComPort控件;TApdTapiDevice不能单独工作,它必须联合TApdComPort一起工作,当创建一个TApdTapiDevice时,它为TApdComPort查找窗体,如果它找到一个,它检查TApdComPort控件的TApiMode属性以决定TapdTapiDevice是否能使用它。
如果TApiMode是默认值tmAuto,TApdComPort控件对TAPI使用可用,TApdTapiDevice保存一个到TApdComPort的指针并设置如下属性值:
ApdComPort.TApiMode:=tmOn;
ApdComPort.AutoOpen:=False;
ApdComPort.Open:=False;
改变TApiMode是tmOn已表明关联的TApdTapiDevice正在控制TApdComPort.设置AutoOpen和Open为False,是因为当他被打开或者被关闭(TAPI正在使用)时,TApdComPort不能再控制。
为了关闭TApiMode模式,或防止TAPI设备控制TApdComPort,设置TApiMode为tmOff。为以后TAPI模式在使能,设置TApiMode为tmAuto或tmOn,还需设置AutoOpen和Open为False,因为仅当TApdTapiDevice或TApdComPort被首先创建时,TApdTapiDevice才自动设置这些属性。
tmNone值没被使用。
3》Tracing属性
aplxz 857 2003-12-8 22:21:21
Tracing属性决定了当前跟踪状态。
当Tracing属性设为tlOff(默认值),则不执行跟踪。
为使能跟踪功能,设置Tracing属性为tlOn。这分配一个2*TraceSize字节大小的内部缓冲区,通知调度器(dispatcher)开始用缓冲区。为使跟踪无效而不用写缓冲区的内容到磁盘文件,设置Tracing属性为tlOff。这样就释放了内部的缓冲区。
为了写跟踪缓冲区的内容到磁盘,设置Tracing属性为tlDump(重写命名为TraceName的文件,或创建一个新文件)或tlAppend(附加到一个已有文件或创建一个新文件)。控件写内容到文件后,设置Tracing属性为tlOff。
为清除跟踪缓冲区内容并继续跟踪,设置Tracing属性为tlClear。控件清除跟踪缓冲区后,设置Tracing属性为tlOn。
为了临时暂停跟踪,设置Tracing属性为tlpause。如果要恢复跟踪,设置Tracing属性为tlOn.
下面例子首先开启Tracing,然后转储(Dump)跟踪缓冲区到APRO.TRC。
ApdComPoert.Tracing:=tlOn;
......
ApdComPort.TraceName:='APRO.TRC';
ApdComPort.Tracing:=tlDump;
...
aplxz 859 2003-12-8 22:41:18
4》Logging属性
Logging属性决定当前日志状态。
当Logging属性设为tlOff(默认值),没有执行日志功能。
为了使能日志,设置Logging属性为tlOn。这分配一个LogSize字节大小的内部缓冲区并通知调度器去开始用这个缓冲区。为了不将日志缓冲区的内容写到磁盘文件,设置Logging属性为tlOff。这样也释放了内部缓冲区。
为了将日志缓冲区的内容写到磁盘,设置Logging属性为tlDump或tlAppend。控件写文件之后,设置Logging属性为tiOff。
为了清除缓冲区的内容并继续使用日志,设置Logging属性为tlClear。控件清除缓冲区之后,设置Logging属性为tlOn。
为临时暂停日志,设置Logging属性为tlPause。为了恢复日志功能,设置Logging属性为tlOn。例:
ApdComPort.Logging:=tlOn;
...
ApdComPort.LogName:='APRO.LOG';
ApdComPort.Logging:=tlDump;
*****************************************
aplxz 860 2003-12-8 22:48:23
5》DTR属性
DTR属性决定当前“Data Terminal Ready”信号(DTR)的状态。
下面例子表明在打开端口之后,降低DTR信号,其后升高DTR信号。
ApdComPort:=TApdComPort.Create(Self);
ApdComPort.Open:=True;
ApdComPort.DTR:=True;
ApdComPort.DTR:=False;
...
ApdComPort.DTR:=True;
**********************************
aplxz 861 2003-12-8 23:02:03
6》ComNumber属性
ComNumber决定了TApdComPort控件使用的串口号(Com1、Com2、...).
ComNumber并不验证串口号的有效性。当打开端口时,Windows通讯驱动程序将决定串口是否有效,如果无效,则出错。
当改变ComNumber的属性时,如果端口打开,关闭已有的端口,用新串口号重新打开。在这个操作中,维持Trigger(触发器).
当使用TAPI和Winsock设备层(Device Layer)时,这个属性被忽略。
下面例子在运行期间创建、配置、打开一个ComPort控件
ApdComPort:=TApdComPort.Create(Self);
ApdComPort.ComNumber:=1;
ApdComPort.Baud:=9600;
ApdComPOrt.Parity:=pNone;
ApdComPort.DataBits:=8;
ApdComPort.StopBits:=1;
ApdComPort.Open:=True;
*********************************
aplxz 862 2003-12-8 23:19:57
7》Open属性
决定是否打开端口,是否用当前的所有属性初始化该端口。
当Open属性设置为True时,TApdComPort控件将用所有当前属性设置来分配输入和输出缓冲区,打开物理端口,初始化线路设置(Line Setting)和流量控制(Flow Control)设置,并使Tracing和Logging有效或无效。然后为低级端口注册一个Trigger,其首先查看所有Trigger事件,并将控制传递给适当的OnTriggerXxx事件处理器。
当Open属性设为False时,TApdComPort将关闭Tracing和Logging(通过设置相关的属性为tlDump,如果已经缓冲了信息,它将创建一个输出文件),关闭端口,重新分配输入和输出缓冲区。
当Open属性已经为True时,设置Open属性为True是无害的;反之亦然。
*************************************************
aplxz 864 2003-12-8 23:31:33
8》StopBits属性
决定端口的停止位的个数,可接受的值为1和2。如果DataBits等于5,一个请求2个停止位被解释为一个请求1.5个停止位。
当改变StopBits属性时,如果端口已打开,线路参数立即更新。在把StopBit属性传递给通信驱动程序之前,StopBits不校验所赋予的值,驱动程序可能拒绝这个值,并将导致一个异常。异常:EBadArgument、EBadHandle。
****************************************************
aplxz 865 2003-12-8 23:35:52
9》DataBits属性
决定端口的数据位的个数。可接受值是:5、6、7、8。
当改变DataBits属性时,如果端口已打开,线路参数立即更新。把DataBit属性传递给通信驱动程序之前,DataBits不校验所赋予的值,驱动程序可能拒绝这个值,并将导致一个异常。异常:ENotSupported.
*****************************************
aplxz 866 2003-12-8 23:40:46
10》Parity属性
决定端口的奇偶校验模式。
当Parity被改变时,如果端口已打开,线路参数立即更新。把Parity属性传递给通信驱动程序之前,Parity不校验所赋予的值,驱动程序可能拒绝这个值,并将导致一个异常。异常:EBadHandle、ENotSupported.
************************************************
aplxz 867 2003-12-8 23:53:47
11》Baud属性
Baud属性决定端口使用的波特率。
通常可接受的波特率值包括:300、1200、2400、4800、9600、19200、38400、57600、115200。
当波特率被改变时,如果端口已打开,线路参数立即更新。把Baud属性传递给通信驱动程序之前,Baud不校验所赋予的值,驱动程序可能拒绝这个值,并将导致一个异常。异常:ENotSupported.
用对象观察器输入一个波特率或调用SelectBaudRate属性编辑器,其提供了一个标准的下拉框。
aplxz 868 2003-12-9 0:14:00
12》OnConnectionStatus事件
当Modem状态改变时,OnConnectionStatus定义了调用的事件处理器。
这个事件处理所有TApdSModem状态改变。下面Modem状态将触发OnConnectionStatus事件:
smsReady 空闲并就绪
smsInitialize 开始初始化进程
smsInitializeTimeout 等待初始化响应超时
smsAutoAnswerBackground autoanswer模式,没振铃接收
smsAutoAnswerWait autoanswer模式,等待第N个铃声
smsAnswerWait 回应呼叫,等待连接
smsDialWait 拨号呼叫,等待连接
smsDialCycle 重试拨号尝试的时间
smsNoDialTone 当拨号尝试时,Modem报告没有拨号音码
smsConnected 处理连接过程
smsHangup 开始挂断过程
smsCancel 开始取消过程
在OnConnectionStatus事件处理器,用TApdSModemStatusInfo类的方法来获取Modem状态和那个情况的合适的状态信息。 参考技术A 不是DELPHI自带的。需要安装APRO控件。本回答被提问者采纳
DELPHI中的webbrowser如何有效防止内存疏漏
根据网上给出的修改文件重新编译的办法可以有效减少,但仍然未能杜绝。我做的程序仍然是过一段时间就大量占用内存,烦死了。
有没有办法彻底解决这个问题?若是要控件解决,麻烦给个控件地址,谢谢。
我没怎么写代码,一般就是打开一个链接,然后用try
wb1.OleObject.document.all.item('DDDDD').innerText:=*******;excpet end;
这类的
或者自动刷新的页面。一刷新就占用多几k到几十K的内存,晕死哦
但占用内存多,那是没办法的。。除非你用底层的WINSOCK自己写个GET HTTP 参考技术A 没听说webbrowser会造成内存泄露啊,是不是你调用了它的接口又没释放呢?检查一下你的代码吧
例如:
finally
Element._Release
end;
以上是关于delphi中的ApdComPort控件在哪,谢谢的主要内容,如果未能解决你的问题,请参考以下文章