动态数组的问题,为什么会这样哪??? ( 积分: 10 )

  • 主题发起人 主题发起人 wwq_80
  • 开始时间 开始时间
W

wwq_80

Unregistered / Unconfirmed
GUEST, unregistred user!
我做的是串口通信,编了一个函数用来将发送的字符串转换为字节形式存放,在函数Function TForm1.strHexToByteArray(strText:String;bytByte:array of Byte):Integer;中设置了一个参数是动态数组,可是在程序中使用setlength(bytByte,account);调试时总是出现类型不匹配的错误,请问这是怎么回事嗯?
 
我做的是串口通信,编了一个函数用来将发送的字符串转换为字节形式存放,在函数Function TForm1.strHexToByteArray(strText:String;bytByte:array of Byte):Integer;中设置了一个参数是动态数组,可是在程序中使用setlength(bytByte,account);调试时总是出现类型不匹配的错误,请问这是怎么回事嗯?
 
应该做成Type的形式传递动态数组。
type MybytByte = array of Byte;
function strHexToByteArray(strText:string; bytByte:MyBytByte):integer;
 
请问type MybytByte = array of Byte;这句话应该写在程序的什么位置啊?谢谢!!
 
在最开始的uses下面有个type的

type
MybytByte = array of Byte;
TxxForm = class(TFrom)
……
 
谢谢!这样好像是可以了,可是我想再问一下,在函数中有两个参数,是否能在主程序中直接使用函数中参数的值,例子如下:已经定义了函数:
Function TForm1.strHexToByteArray(strText:String;bytByte:MybytByte):Integer;
在程序中调用了函数:
longth:= strHexToByteArray(strSendText, bytSendByte);
能否直接使用参数bytSendByte:
Form1.MSComm1.Output:= bytSendByte;
我的程序中好像只是返回一个空的字节数组,这是怎么回事哪?
 
Function TForm1.strHexToByteArray(var strText:String;var bytByte:MybytByte):Integer;
看來你對delphi了解實在不多啊!努力啊!
 
谢谢aszzhao,我一定会努力的!我是刚刚接触delphi,想用它编一个串口通信的程序,原来听说vb也可以,所以看了一阵vb的书,现在想试试delphi。我用的是mscomm控件,我想向各位大侠请教一下,用mscomm控件是比api简单点吧,因为我们要传的数据可能只是一些数字,应该不是很麻烦,我想选择简单一点的方法。请大家多多指教,万分感谢!
 
用mscomm比用api简单很多啊!基本上不用想事件响应是怎么回事了啊!
用api还要自己做事件响应来接受数据!
 
后退
顶部