数据发送的问题

humanwal 2006-02-05 11:30:36
怎样使用一个Botton发送2个数据?

如,BCB6中我Click一次Botton1发送42H,再Click一次Botton1发送02H,再Click一次Botton1又是42H。要能如此反复,请问这样的程序怎样写?

谢谢!
...全文
210 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
scfox 2006-02-10
  • 打赏
  • 举报
回复
成员变量m_Flag要在窗体的.H文件中定义,你在Button的事件函数中定义每点击一次都要被初始化.
chiangpiong 2006-02-06
  • 打赏
  • 举报
回复
哈哈哈
这样的问题怎么还会出现啊
m_Flag不能在模块内定义的
要在模块外面定义
你现在这样定义,每次点击按钮都会首先给m_Flag赋值0,当然就只能发送一种数据了
其实不需要设一个变量的,直接使用Button的Tag属性就可以了
代码可以改为如下:
void __fastcall TForm1::Button1Click(TObject *Sender)
{ char Bufon[3];
Bufon[0] = 0xfc;
Bufon[1] = 0x00;
Bufon[2] = 0x40;
char Bufoff[3];
Bufoff[0]=0xfc;
Bufoff[1]=0x00;
Bufoff[2]=0x00;
if(Button1->Tag==0)
{
YbCommDevice1->WritePackage(Bufon,3);
Button1->Tag = 1;
}
else
{
YbCommDevice1->WritePackage(Bufoff,3);
Button1->Tag = 0;
}
}
scfox 2006-02-05
  • 打赏
  • 举报
回复
加一个成员变量int m_Flag;
if(0==m_Flag)
{
Send(42H);
m_Flag = 1;
}
else
{
Send(02H);
m_Flag = 0;
}
QBUD211 2006-02-05
  • 打赏
  • 举报
回复
看下是否该清空那个控件的内存?
humanwal 2006-02-05
  • 打赏
  • 举报
回复
补充一下,我的是一个串口通讯控件。
humanwal 2006-02-05
  • 打赏
  • 举报
回复
谢谢这位朋友!

不过我还是没搞定。

我的具体情况是要发送2组16进制数0xfc 0x00 0x40 和 0xfc 0x00 0x00,而且在初始情况下应该是发送0xfc 0x00 0x40

根据你的提示我的Button1的Click代码如下:
void __fastcall TForm1::Button1Click(TObject *Sender)
{ char Bufon[3];
Bufon[0] = 0xfc;
Bufon[1] = 0x00;
Bufon[2] = 0x40;
char Bufoff[3];
Bufoff[0]=0xfc;
Bufoff[1]=0x00;
Bufoff[2]=0x00;
int m_Flag=0;
if(0==m_Flag)
{
YbCommDevice1->WritePackage(Bufon,3);
m_Flag = 1;
}
else
{
YbCommDevice1->WritePackage(Bufoff,3);
m_Flag = 0;
}
}

我现在好像只能发送0xfc 0x00 0x40 ,请问错在哪里,谢谢!!!

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧