首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

在用SPCOM控件时遇到的这样的编译警告,请帮小弟我看看!

2012-03-12 
在用SPCOM控件时遇到的这样的编译警告,请帮我看看!!我的程序里,是用Spcom控件的,注册了之后,在我的Form上

在用SPCOM控件时遇到的这样的编译警告,请帮我看看!!
我的程序里,是用Spcom控件的,注册了之后,在我的Form上放了一个,关于协议设置,我在界面上放了几个ComboBox控件,比如波特率,停止位和校验位等都是通过ComboBox里选择的,在Spcom里,它的属性,数据位,校验位,停止位都是枚举类型的,我下面的代码为什么会有个警告出现!
void   __fastcall   TForm1::BtnInitClick(TObject   *Sender)
{
          Comm-> StopComm();
          Comm-> CommName   =   ComName;
          Comm-> BaudRate   =   ComBaud;
          Comm-> ByteSize   =   CmbDatabit-> Text.ToIntDef(_8);//警告
          Comm-> Parity   =   CmbParity-> Text.ToIntDef(None)   ;//警告
          Comm-> StopBits   =   CmbStop-> Text.ToIntDef(_1);       //警告
          try
          {
                Comm-> StartComm();
          }
          catch(...)
          {
                Application-> MessageBoxA( "串口通信参数设置错误!\n现在串口停止工作。 ", "串口错误 ",0);
          }
}
[C++   Warning]   CommTestMain.cpp(48):   W8018   Assigning   int   to   TByteSize
[C++   Warning]   CommTestMain.cpp(49):   W8018   Assigning   int   to   TParity
[C++   Warning]   CommTestMain.cpp(50):   W8018   Assigning   int   to   TStopBits
请问如何修改!

[解决办法]
//delphi的例子请参考

spcomm写端口

interface

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

TForm1 = class(TForm)
PageControl1: TPageControl;
StatusBar1: TStatusBar;
TabSheet1: TTabSheet;
Label1: TLabel;
EditCommName: TEdit;
Label2: TLabel;
bautrate: TEdit;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
bytesize: TComboBox;
stopbits: TComboBox;
sendparty: TComboBox;
memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Comm1: TComm;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
procedure bautrateExit(Sender: TObject);
procedure bytesizeChange(Sender: TObject);
procedure stopbitsChange(Sender: TObject);
procedure sendpartyChange(Sender: TObject);
private
{ Private declarations }
//procedure WMCOMMNOTIFY(var Message:Tmessage);message WM_COMMNOTIFY;


public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
comm1.CommName:=editcommname.Text;
comm1.BaudRate:=strtoint(bautrate.Text);
comm1.ByteSize:=tbytesize(bytesize.ItemIndex);
comm1.StopBits:=tstopbits(stopbits.ItemIndex);
comm1.Parity:=tparity(sendparty.ItemIndex);
try
comm1.StartComm;
except
raise exception.Create( '打开串口错误 ');
end;


statusbar1.Panels[0].Text:=comm1.CommName+ '已打开 ';
statusbar1.Refresh;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
editcommname.Text:= 'COM1 ';
bautrate.Text:= '9600 ';
bytesize.ItemIndex:=3;
stopbits.ItemIndex:=0;
sendparty.ItemIndex:=0;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
comm1.StopComm;
statusbar1.Panels[0].Text:=comm1.CommName+ '已关闭 ';
statusbar1.Refresh;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
str:pchar;
count:integer;
begin
str:=pchar(memo1.Lines.Text);
count:=length(str);
if comm1.WriteCommData(str,count) then
edit3.Text:= '已发送 '+inttostr(count)+ '个字符 '
else
raise exception.Create( '发送错误 ');

end;

procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
strRecv:string;
begin
setlength(strRecv,bufferlength);
move(buffer^,pchar(strrecv)^,bufferlength);
memo1.Lines.Add( '已收到: '+inttostr(bufferlength)+ '字节的数据 ');
memo1.Lines.Add(strRecv);
memo1.Invalidate;
end;

procedure TForm1.bautrateExit(Sender: TObject);
var
i:integer;
begin
try
i:=strtoint(bautrate.Text);
except
bautrate.SetFocus;
raise exception.Create( '波特率设置错误 ');
end;
comm1.BaudRate:=strtoint(bautrate.Text);

end;

procedure TForm1.bytesizeChange(Sender: TObject);
begin
comm1.ByteSize:=tbytesize(bytesize.ItemIndex);
end;

procedure TForm1.stopbitsChange(Sender: TObject);
begin
comm1.StopBits:=tstopbits(stopbits.ItemIndex);
end;

procedure TForm1.sendpartyChange(Sender: TObject);
begin
comm1.Parity:=tparity(sendparty.ItemIndex);
end;

end.

热点排行