我是这样写的!各位大哥们看看!
function TFrm_main.bytetolong(byte:Array of byte):string;
type
  PReal = ^integer;
Var
  captional :string;
  Fvalue: integer;
begin
 
   Fvalue := PReal(@byte[0])^;
   captional :=inttostr(Fvalue);
   result :=captional ;
end;
......
     Move(TempData[0],PhaseBreak.PhaseBreak_CountTime,3);    PhaseBreak_CountTime里面的数字为(25,16,0)
       Move(TempData[3],PhaseBreak.PhaseABreak_CountTime,3);
       Move(TempData[6],PhaseBreak.PhaseBBreak_CountTime,3);
       Move(TempData[9],PhaseBreak.PhaseCBreak_CountTime,3);        FStartTimeT := bytetolong(PhaseBreak.PhaseBreak_CountTime);     在FStartTimeT里面的 的数字为 419434521 
       FStartTimeA := bytetolong(PhaseBreak.PhaseABreak_CountTime);
       FStartTimeB := bytetolong(PhaseBreak.PhaseBBreak_CountTime);
       FStartTimeC := bytetolong(PhaseBreak.PhaseCBreak_CountTime);
       FStartTimeT1 := strtodatetime(FStartTimeT); 
   FStartTimeT 的数字出错了. 但我目的是将BYTE里面的三个数字 要以MIN 分钟的显示出来. 要怎么写.我错误在哪里能不能麻烦各位帮我指正一下.假如愿意帮我解决问题.写的稍微详细点好不
  谢谢拉!

解决方案 »

  1.   

    var
      Str : string;
      Arr : array[1..3] of Byte;
    begin
      //Arr赋值略
      Str := Format('%d:%d:%d',[ Arr[1],Arr[2],Arr[3] ]);
      ShowMessage(Str);
    end;
      

  2.   

    lihuasoft(坐井观天)  我没分 有分送给你哦! 
      Array[1..3] 表示的是一个三个字节数据类型.我要将这个转换成一个LONG类型的数据.然后在显示出来.你这种能不能教下我!
      

  3.   

    数组应该没什么存放规则! 我是从一个大的 数组[1..12]里面 MOVE 三个array[1..3]过来 然后就将array[1..3] 转化成long 类型显示.
      

  4.   

    有时(132,35,0) 有时(52,36,0)  希望能显示成 一个Min(分钟)格式的.如36分52秒 这类型
      

  5.   

    你要把三个值放到一个long型变量里,这三个值要怎么放?
    是从long型变量最左边放,还是从最右边?中间有没有间隔?
    这些都要说清楚,才好给你写代码
      

  6.   

    sdzeng 大哥举一个列子把: (56,36,0) 表示成 36分56秒 它在long 的表示是0X00 00 36 56  他的存储位置是56 32 00 00
      

  7.   

    sdzeng 大哥它们中间没间隔的 现在的空格是我自己写上去的 看上方便点
      

  8.   

    按你那个0X00 00 36 56的要求转换起来要麻烦一些
    先给你个简单的var
      a,a1 : array[0..2] of Byte;
      i : Integer;
    begin
      Zeromemory(@a,3);
      a[0] := 56;
      a[1] := 36;  //保存为$00 00 24 38
      i := 0;
      i := i or a[0];
      i := i or (a[1] shl 8);  //还原
      Zeromemory(@a1,3);
      a1[0] := i and $ff;
      a1[1] := i shr 8;  ShowMessage(Format('%d分%d秒',[a1[1],a1[0]]));
    end;
      

  9.   

    var
      a,a1 : array[0..2] of Byte;
      i,i1 : Integer;  s : String;
      c : char;
    begin
      Zeromemory(@a,3);
      a[0] := 56;
      a[1] := 36;  //保存为$00 00 24 38
      i := 0;
      i := i or a[0];
      i := i or (a[1] shl 8);  //还原
      Zeromemory(@a1,3);
      a1[0] := i and $ff;
      a1[1] := i shr 8;  ShowMessage(Format('%d分%d秒',[a1[1],a1[0]]));  //保存为$00 00 36 56
      i1 := 0;  s := IntToStr(a[0]);
      HexToBin(@s[1],@c,1);
      i1 :=i1 or Ord(c);  s := IntToStr(a[1]);
      HexToBin(@s[1],@c,1);
      i1 := i1 or (Ord(c) shl 8);  //还原
      Zeromemory(@a1,3);
      a1[0] := i1 and $ff;
      a1[1] := i1 shr 8;
      ShowMessage(Format('%x分%x秒',[a1[1],a1[0]]));
      

  10.   

    哦 非常感谢你!sdzeng 大哥
      

  11.   

    sdzeng 大哥. 你这代码好象没把他们表示成一个LONGINT 类型数据把 .还有能不能把0X00003656 怎么表示也写一下
      

  12.   

    C语言的long型是signed 32-bit,
    Delphi中longint和Integer是等价的,都是signed 32-bit这些都是基础知识,稍微思考一下就不会再问这个问题前面的例子已经给出了0X00003656的写法,不知道你有没有看注释等现成不是你这种等法