求 MSComm 控件(Delphi 6)(50分)

  • 主题发起人 主题发起人 qj_chen
  • 开始时间 开始时间
Q

qj_chen

Unregistered / Unconfirmed
GUEST, unregistred user!
请诸位大侠提供一个在Delphi 6.0使用的MSComm控件。谢谢!
Email: qjchen@21cn.com [red][/red][:)]
 
没搞错吧?
Mscomm是ActiveX的,谁都可以用,如果不能用把VB装上就可以了
或找Mscomm32.ocx然后自已注册
不过说实话Delphi下建议用Spcomm或 Apro
 
Delphi中MsComm控件的安装使用

  Delphi 具有功能强大、简便易用和代码执行速度快等特点,是全球公认的快速应用开发工具技术的先驱者。但是在对串口通信的控制上Delphi的帮助文档和其他书籍中很少提及,这恰恰又是在开发应用系统时会经常遇到的问题。用过VB的程序员都知道 VB的MSComm通信控件具有丰富的与串口通信密切相关的属性及事件,提供了一系列标准通信命令的接口,可以用它创建全双工的、事件驱动的、高效实用的通信程序。在这里就介绍一下如何把MSComm这个ActiveX控件加入到Delphi中,充分发挥出二者的优越性。

  首先在VB安装目录下找到下列三个文件:

  Mscomm.reg, Mscomm32.ocx,Mscomm32.dep ,

  把这三个文件拷贝到Windows的system目录下(注意WinNT下是System32)。然后用Windows下的注册工具regsvr32注册该OCX控件,例如:

  Regsvr32 … system目录/Mscomm32.ocx .

  注册成功后用记事本打开Mscomm.reg,可以看到类似下面的内容:

  [HKEY_CLASSES_ROOT/Licenses/4250E830-6AC2-11cf-8ADB-00AA00C00905]

@ = "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun",为了能正确使用该控件,需要修改注册表的信息,在注册表的在HKEY_CLASSES_ROOT/Licenses下建一主键:

4250E830-6AC2-11cf-8ADB-00AA00C00905,主键的内容为

kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun.

  至此已经完成了控件的系统注册工作,剩下的工作是在Delphi中导入这个ActiveX控件,进入Delphi环境在Component菜单下选Import ActiveX Control,这时在列表中可以看到Microsoft Comm Control 6.0选项, 选中这个选项点击Install按钮,完成安装。在ActiveX控件页上可以看到一个电话为图标的控件,这就是MSComm控件。这样就可以象在VB中一样方便得使用MSComm控件了。
 
下载网址
http://www.51delphi.com/delphi/soft?type=通信
 
还是建议用Turbo Power公司的APRO套件吧, 专业的串口通信组件
 
//控件SPCOMM,到网上下载!下面例子delphi 6调试成功!接收十六进制
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SPComm, StdCtrls;

type
TForm1 = class(TForm)
Comm1: TComm;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject
var Action: TCloseAction);
procedure Comm1ReceiveData(Sender: TObject
Buffer: Pointer;
BufferLength: Word);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Comm1.startcomm;//创建窗体时,将comm1控件打开。
Memo1.Text := '';
end;

procedure TForm1.FormClose(Sender: TObject
var Action: TCloseAction);
begin
comm1.StopComm;//关闭窗体时,将comm1控件关闭。
end;

procedure TForm1.Comm1ReceiveData(Sender: TObject
Buffer: Pointer;
BufferLength: Word);
var
BufferDate :array[0..512] of byte
//定义接收数组
i :integer;
begin
try
move(buffer^,pchar(@Bufferdate)^,bufferlength);
for i:=0 to BufferLength - 1 do
begin
Memo1.Text := Memo1.Text + IntToHex(Bufferdate, 2) + ' ';
end;
except
comm1.StopComm;
showmessage('通迅错误!');
end;
Memo1.Lines.Add('成功');

end;

end.
 
我安装了VB后就解决问题了,但是在VB的安装目录下找不到Mscomm.reg文件。谢谢诸位的指导!!!
 
后退
顶部