小弟我是一个编程新手,我自己也编了一个串口通讯的调试界面。别的工作都已经完成了,但是接收、发送只能是十进制的。我想把它编程十六进制的。但是搞了好久都没搞好。我知道可以用intTOhex函数,但是就不知道怎么将代码加到我现有的代码中去。我只会将具体的整形变量变为十六进制显示。不会将接收到的数据转为十六进制。请各位指点。敬请将源代码贴上来。procedure TForm1.MSComm1Comm(Sender: TObject);
var
recstr:Olevariant;
j:integer;
begin
MSComm1.Settings:=ComboBox1.text;
if Mscomm1.CommEvent=comEvReceive then
begin
recstr:=MSComm1.Input;
memo1.Text:=memo1.Text+recstr+#13;
end;
end;这是我接收到的网络信号,放在memo1.text中。
var
recstr:Olevariant;
j:integer;
begin
MSComm1.Settings:=ComboBox1.text;
if Mscomm1.CommEvent=comEvReceive then
begin
recstr:=MSComm1.Input;
memo1.Text:=memo1.Text+recstr+#13;
end;
end;这是我接收到的网络信号,放在memo1.text中。
解决方案 »
- 热烈庆祝倭人无缘进级,马上就要滚回倭国了...散分...
- 求一个关于gina dll方面的delphi实例
- SAX解析器的问题, 100分送上
- 请大推荐一下DirectX和OpenGL的入门书籍, 谢谢
- 关于窗口程序和回调函数的问题????
- 怎样在TADOQuery中执行create view ???
- 有谁知道哪里有winxp中文版的下载网址?
- 网络共享问题:程序要用到server上的*.txt文件,但该文件又不能让用户直接打开,应该怎么办?
- ************购买:基于数字证书认证的支付网关系统,有意者请回帖********************
- 一个页面上有几十个Tedit,在其keydown中做同一个过程,如何写最简便?
- 请问基于ADO的应用程序可以是单层的或多层的?其情况取决于使用的?
- 各位大侠来帮帮我吧
var
recstr:Olevariant;
j:integer;
s:string;
begin
MSComm1.Settings:=ComboBox1.text;
if Mscomm1.CommEvent=comEvReceive then
begin
recstr:=MSComm1.Input;
s:='';
for j:=1 to length(recstr) do
s:=s+inttohex(byte(recstr[j]),2);
memo1.Text:=memo1.Text+s+#13;
end;
end;
iRec:= StrToInt(recstr);
这个iRec就是得到的10进制数了
这是为什么?
var
recstr:Olevariant;
j:integer;
s:string;
begin
MSComm1.Settings:=ComboBox1.text;
if Mscomm1.CommEvent=comEvReceive then
begin
recstr:=VarArrayCreate([0,sizeof(MSComm1.Input)],varByte);
recstr:=MSComm1.Input;
s:='';
for j:=0 to length(recstr)-1 do
s:=s+inttohex(recstr[j],2);
memo1.Text:=memo1.Text+s+#13;
end;
end;你这样试试吧,我机器没有MSCOMM,试不了。我一般用的是SPCOMM。呵呵。