急救!
错误信息如下:
Error] SPCOM.pas(39): Published property 'Buffer' cannot be of type POINTER
[Error] SPCOM.pas(54): Undeclared identifier: 'CommPort'
[Error] SPCOM.pas(55): Undeclared identifier: 'hCommFile'
[Warning] SPCOM.pas(61): Comparison always evaluates to False
[Error] SPCOM.pas(86): Undeclared identifier: 'Buffer'
[Error] SPCOM.pas(86): '(' expected but ')' found
[Error] SPCOM.pas(87): Incompatible types
[Error] SPCOM.pas(87): Undeclared identifier: 'hCommFile'
[Error] SPCOM.pas(92): '(' expected but '<=' found
代码如下:
unit SPCOM;interfaceuses
SysUtils, Classes, Controls,Windows,Messages,Dialogs;type
TSPCOM = class(TComponent)
private
{ Private declarations }
{以下为定义属性}
FCommPort:String; //操作端口
FhCommFile:THandle; //程序消息手柄
FBuffer:PCommConfig; //端口数据缓冲区
FSize:LongWORD; //读取数据大小
protected
{ Protected declarations }
public
{ Public declarations }
function SetupCom(pvar:Byte):boolean; //设置串口
function CloseCom():boolean; //关闭串口
function BeepOne(IBeepTime:Byte):Boolean; //读卡器蜂鸣
function Bright(BrightTime:longint):Boolean; //发光管闪亮
function Verity(AB:char;Block:Byte;CardNum:Longint):Boolean; //验证密码
function FindCard(Mode:Byte;data:DWORD):Boolean; //寻卡
function TestCom():boolean; //测试通信
function CloseCard():boolean; //关闭卡片
function WriteCard(block:Byte;data:DWORD):boolean; //写卡
function ReadCard(block:Byte;data:DWORD):boolean; //读卡
function CloseAwoke(OperationType:Byte):boolean; //关闭和环形射频电路
function DownPassword(AB:char;Section:Byte;PassWord:DWORD):boolean;
//下载密码 published
{ Published declarations }
property CommPort:String read FCommPort write FCommPort;
property hCommFile:THandle read FhCommFile write FhCommFile;
property Buffer:PCommConfig read FBuffer write FBuffer;
property Size:DWORD read FSize write FSize; end;procedure Register;implementation function SetupCom(pvar:Byte):boolean; //设置串口
var
lpdcb:Tdcb;
begin
if (pvar>0) and (pvar<5) then
begin
CommPort:='COM'+IntToStr(pvar);
hCommFile:=createfile(PChar(CommPort),generic_read or generic_write,
0,
Nil,
open_existing,
file_attribute_normal or file_flag_overlapped,
0); //打开串口
if hCommFile=invalid_handle_value then
begin
ShowMessage('不能打开串口'+CommPort+'!');
exit;
end else
begin //设置串口
SetupComm(hCommFile,4096,4096);
GetCommState(hCommFile,lpdcb);
lpdcb.BaudRate:=19200;
lpdcb.StopBits:=1;
lpdcb.ByteSize:=8;
lpdcb.Parity:=NoParity;
SetCommState(hCommFile,lpdcb);
SetCommMask(hCommFile,Ev_RxChar or Ev_TxEmpty);
end;
end else
ShowMessage('没有这个串口!');
end; function CloseCom():boolean; //关闭串口
begin
FreeMem(Buffer,Size);
CloseHandle(hCommFile);
end;
错误信息如下:
Error] SPCOM.pas(39): Published property 'Buffer' cannot be of type POINTER
[Error] SPCOM.pas(54): Undeclared identifier: 'CommPort'
[Error] SPCOM.pas(55): Undeclared identifier: 'hCommFile'
[Warning] SPCOM.pas(61): Comparison always evaluates to False
[Error] SPCOM.pas(86): Undeclared identifier: 'Buffer'
[Error] SPCOM.pas(86): '(' expected but ')' found
[Error] SPCOM.pas(87): Incompatible types
[Error] SPCOM.pas(87): Undeclared identifier: 'hCommFile'
[Error] SPCOM.pas(92): '(' expected but '<=' found
代码如下:
unit SPCOM;interfaceuses
SysUtils, Classes, Controls,Windows,Messages,Dialogs;type
TSPCOM = class(TComponent)
private
{ Private declarations }
{以下为定义属性}
FCommPort:String; //操作端口
FhCommFile:THandle; //程序消息手柄
FBuffer:PCommConfig; //端口数据缓冲区
FSize:LongWORD; //读取数据大小
protected
{ Protected declarations }
public
{ Public declarations }
function SetupCom(pvar:Byte):boolean; //设置串口
function CloseCom():boolean; //关闭串口
function BeepOne(IBeepTime:Byte):Boolean; //读卡器蜂鸣
function Bright(BrightTime:longint):Boolean; //发光管闪亮
function Verity(AB:char;Block:Byte;CardNum:Longint):Boolean; //验证密码
function FindCard(Mode:Byte;data:DWORD):Boolean; //寻卡
function TestCom():boolean; //测试通信
function CloseCard():boolean; //关闭卡片
function WriteCard(block:Byte;data:DWORD):boolean; //写卡
function ReadCard(block:Byte;data:DWORD):boolean; //读卡
function CloseAwoke(OperationType:Byte):boolean; //关闭和环形射频电路
function DownPassword(AB:char;Section:Byte;PassWord:DWORD):boolean;
//下载密码 published
{ Published declarations }
property CommPort:String read FCommPort write FCommPort;
property hCommFile:THandle read FhCommFile write FhCommFile;
property Buffer:PCommConfig read FBuffer write FBuffer;
property Size:DWORD read FSize write FSize; end;procedure Register;implementation function SetupCom(pvar:Byte):boolean; //设置串口
var
lpdcb:Tdcb;
begin
if (pvar>0) and (pvar<5) then
begin
CommPort:='COM'+IntToStr(pvar);
hCommFile:=createfile(PChar(CommPort),generic_read or generic_write,
0,
Nil,
open_existing,
file_attribute_normal or file_flag_overlapped,
0); //打开串口
if hCommFile=invalid_handle_value then
begin
ShowMessage('不能打开串口'+CommPort+'!');
exit;
end else
begin //设置串口
SetupComm(hCommFile,4096,4096);
GetCommState(hCommFile,lpdcb);
lpdcb.BaudRate:=19200;
lpdcb.StopBits:=1;
lpdcb.ByteSize:=8;
lpdcb.Parity:=NoParity;
SetCommState(hCommFile,lpdcb);
SetCommMask(hCommFile,Ev_RxChar or Ev_TxEmpty);
end;
end else
ShowMessage('没有这个串口!');
end; function CloseCom():boolean; //关闭串口
begin
FreeMem(Buffer,Size);
CloseHandle(hCommFile);
end;
解决方案 »
- 图片存储的问题
- 誰能幫我看一下這個TreeView的取值有什麼問題
- 三个问题都很简单,可惜已经半年都没摸计算机了
- 我使用ADOQuery对表进行了更新.然后马上用另外一个ADOQuery对这个表进行查询.结果查询不出更新后的数据.??.急急!
- 关于菜单字体在WIN2000和WIN98下的显示问题?
- 急!如果我要限制在一个edit1里面只能输入10位数字,怎么处理?
- 从今日开始做多媒体类的共享软件!散分!!!!!!!!!!!!!!!!!!!!!!
- 如何获得打开输入法的“热键”(例如Ctrl+Space)???以及切换的“热键”???????
- 在TDBGRID中,如何获的新增行(没有提交)的数据——在线等待
- 如何编一个程序,记录所有键盘输入信息,是长驻内存不显示在任务管理器上?
- 有人会用1stClass的fcoutlookBar的高手么????急急急急急!!!
- 麻烦来了
(因为没有在家里,这里没有delphi)implementation function TSPCOM.SetupCom(pvar:Byte):boolean; //加上类名
........... function TSPCOM.CloseCom():boolean; //加上类名
.........其他的我也看不懂