delphi 中一种好用的数组定义方法以及函数嵌套的使用源代码

typeTByteBuff;= array of integer; function abc(a:integer):TByteBuff;; var tempArr:TByteBuff; begin setlength(tempArr,2); tempArr[0] := a; tempArr[1] := a + 10; result:=tempArr; end; procedure TForm1.Button1Click(Sender: TObject); var a : integer; begin a := 5; showmessage(inttostr( abc(a)[0] )); //5 //这以这样使用返回数组 showmessage(inttostr( abc(a)[1] )); //15 //这以这样使用返回数组end;function TFrmMain.CommandFrameData(CommandCode, MeasureType, SampleMode: Byte; DataSize, MeasureSum, MeasureID: Integer): TByteBuff;vartempsendbuff,InteraBuff:TByteBuff;J,sum:Integer;function BuildFrameData(CommandCode, MeasureType, SampleMode: Byte; DataSize, MeasureSum, MeasureID: Integer): TByteBuff; //组帧数据 varsendbuff: TByteBuff;i:Integer;beginsetlength(sendbuff,Datasize);//FillChar(sendbuff,SizeOf(sendbuff),0);if CommandCode=$01 then //建立连接帧beginsendbuff[0]:=$01;end;if CommandCode=$02 then //测量任务及参数设置指令begin if MeasureType=$03 then//数字测量类型 beginsendbuff[0]:=CommandCode;//指令码sendbuff[1]:=MeasureSum;//被测量个数sendbuff[2]:=MeasureID;//测量IDsendbuff[3]:=MeasureType;//测量类型sendbuff[5]:=DMeasureParam.DChannelNum;//数字通道号sendbuff[6]:=DMeasureParam.PulsePerCir[0]; //每圈脉冲数sendbuff[7]:=DMeasureParam.PulsePerCir[1];sendbuff[8]:=DMeasureParam.FrequencyCoefficient; //分频系数sendbuff[4]:=SizeOf(sendbuff[5])+SizeOf(sendbuff[6])+SizeOf(sendbuff[7])+SizeOf(sendbuff[8]); //测量参数长度end else beginsendbuff[0]:=CommandCode;//指令码sendbuff[1]:=MeasureSum;//被测量个数sendbuff[2]:=MeasureID;//测量IDsendbuff[3]:=MeasureType;if AMeasureParam.Samplemode=$00 thenbeginsendbuff[5]:=AMeasureParam.AChannelNum;//模拟通道号sendbuff[6]:=AMeasureParam.DChannelNum;//数字通道号sendbuff[7]:=AMeasureParam.NodeNumPerCir[0]; //每圈采集点数sendbuff[8]:=AMeasureParam.NodeNumPerCir[1];sendbuff[9]:=AMeasureParam.PulsePerCir[0]; //每圈脉冲数sendbuff[10]:=AMeasureParam.PulsePerCir[1];sendbuff[11]:=AMeasureParam.ChoseRange;//量程选择sendbuff[4]:=SizeOf(sendbuff[5])+SizeOf(sendbuff[6])+SizeOf(sendbuff[7])+SizeOf(sendbuff[8])+SizeOf(sendbuff[9])+SizeOf(sendbuff[10])+SizeOf(sendbuff[11]); //测量参数长度end;if AMeasureParam.Samplemode=$01 thenbeginsendbuff[5]:=AMeasureParam.AChannelNum;//模拟通道号sendbuff[6]:=AMeasureParam.SampleRate[0];//采样率sendbuff[7]:=AMeasureParam.SampleRate[1];sendbuff[8]:=AMeasureParam.SampleRate[2];sendbuff[9]:=AMeasureParam.SampleRate[3];sendbuff[10]:=AMeasureParam.SaveLetter;sendbuff[4]:=SizeOf(sendbuff[5])+SizeOf(sendbuff[6])+SizeOf(sendbuff[7])+SizeOf(sendbuff[8])+SizeOf(sendbuff[9])+SizeOf(sendbuff[10]);end; end;end;Result:=sendbuff;end; beginsum:=0;InteraBuff:=BuildFrameData(CommandCode, MeasureType, SampleMode, DataSize, MeasureSum, MeasureID);setlength(tempsendbuff,Sizeof(InteraBuff)+6);tempsendbuff[0]:=$7E;tempsendbuff[1]:=Sizeof(InteraBuff)+2;for J := 0 to Sizeof(InteraBuff) – 1 dobegin tempsendbuff[2+J]:=InteraBuff[J]; sum:=sum+interabuff[J];end;tempsendbuff[3+J]:=(sum mod 65535);tempsendbuff[4+J]:=$7F;Result:=tempsendbuff;end;

,两粒种子,一片森林。

delphi 中一种好用的数组定义方法以及函数嵌套的使用源代码

相关文章:

你感兴趣的文章:

标签云: