comport控件读取串口数据,如何经常把一整个数据分成2部分来读啊这就变成2个数据了啊

comport控件读取串口数据,怎么经常把一整个数据分成2部分来读啊,这就变成2个数据了啊~
帖下我的代码:
procedure   TForm1.ComPortRxChar(Sender:   TObject;   Count:   Integer);
var
    RecvS,Disps:shortstring;
    RecvLen,DataIdx,xcidx:integer;
    CardVer:dword;
    p,i,CMD,SuccFlag,CID,Zoneb,DevID0,DevID1,DevID2:byte;
    OldFn,OldFn1,NewFn,DirS:string;
    UDPBuf:array[0..1023]   of   byte;
begin
//xcidx:=comport.Read(RecvBuf,   ComPort.InputCount);   //读取
//AddLog( '   读取字节数:   '+inttostr(xcidx));

{     xcidx:=ComPort.InputCount;
    CardID:=xcidx+CardID;
    if   (CardID=16)   or   (CardID=13)   then
    begin
        ComPort.Read(RecvBuf[RecvPos],count);
        CardID:=0;
        xcidx:=0;
    end   else   Exit;     }

    ComPort.Read(RecvBuf[RecvPos],count);
    DataIdx:=9;
    CMD:=RecvBuf[DataIdx];
    SuccFlag:=RecvBuf[DataIdx+1];
    CID:=RecvBuf[DataIdx+2];
    RecvS:= ' ';   for   i:=0   to   15   do   RecvS:=RecvS+IntToHex(ord(RecvBuf[i]),2)+ '   ';
    AddLog( '   接收码:   '+RecvS);
    if   (cmd   =$16)   or   (cmd=$17)   or   (cmd=$12)   then
    begin
        if   CMD=$16   then
        begin
            case   CID   of
                1   :   if   SuccFlag> 0   then   begin   Addlog( '   外出布防成功 ');end   else   Addlog( '   外出布防失败 ');
                2   :   if   SuccFlag> 0   then   begin   Addlog( '   在家布防成功 ');end   else   Addlog( '   在家布防失败 ');
            end;
        end   else   if   CMD=$17   then
        begin
            if   SuccFlag> 0   then   begin   Addlog( '   撤防成功 ');end   else   Addlog( '   撤防失败 ');
        end   else   if   CMD=$12   then
        begin
            case   CID   of
                24   :   if   SuccFlag> 0   then   begin   Addlog( '   布防成功 ');end   else   Addlog( '   布防失败 ');
                56   :   if   SuccFlag> 0   then   begin   Addlog( '   撤防成功 ');end   else   Addlog( '   撤防失败 ');
                40   :   if   SuccFlag> 0   then   begin   Addlog( '   开设备1成功 ');end   else   Addlog( '   开设备1失败 ');
                8     :   if   SuccFlag> 0   then   begin   Addlog( '   关设备1成功 ');end   else   Addlog( '   关设备1失败 ');
                48   :   if   SuccFlag> 0   then   begin   Addlog( '   开设备2成功 ');end   else   Addlog( '   开设备2失败 ');