TheItem := TRD1_VolStyleList(TheDataList)[i];
aDataRec[i].DATE := TheItem.DateStr;
aDataRec[i].RATE := TheItem.RATE; 
aDataRec[i].Up := TheItem.Up; 
聲明如下:  TRD1_VolStyleList = class(TWWCustomDataKeyList)
  public
  constructor Create(const AIsCreateListFile: Boolean; const AFileName: string);
  private
    function GetItem(Index: Integer): TRD1_VolItemRec;
    procedure SetItem(Index: Integer; Value: TRD1_VolItemRec);
  public
    procedure Add(AItem: Pointer); override;
    property Items[Index: Integer]: TRD1_VolItemRec read GetItem write SetItem; default;
  end;
  TheItem: TRD1_VolItemRec;
  TRD1_VolItemRec = packed record
    DateTime: TDateTime; 
    DateStr: string[10]; 
    UP: Single; 
    RATE: Single; 
  end;
theItem和TRD1_VolStyleList(TheDataList)[i];怎么能相等?TRD1_VolStyleList(TheDataList)這種轉換時什么意思?TheDataList本來就是由TRD1_VolStyleList所創建的一個實例,為什么還要做這個動作?我新手,待牛人解決!!!!!!!

解决方案 »

  1.   

    哦!代碼中還有這句:TheDataList := TRD1_VolStyleList.Create(True, PacketFileName);
      

  2.   

    theItem和TRD1_VolStyleList(TheDataList)[i];怎么能相等
    这个不是相等,而是指向TRD1_VolStyleList(TheDataList)這種轉換時什么意思
    类型转换,将TheDataList转换为TRD1_VolStyleList,去学习类的转换TheDataList本來就是由TRD1_VolStyleList所創建的一個實例,為什么還要做這個動作
    这个道理同第二个问题,先去学习基本知识
      

  3.   

    如果TheDataList本來就是由TRD1_VolStyleList所創建的一個實例,為什么還要做這個動作?我新手,待牛人解決!!!!!!!
    如果TheDataList本來就是由TRD1_VolStyleList所創建的一個實例,那么就可以不需要转。如果TheDataList是TRD1_VolStyleList的祖先类,就需要转theItem和TRD1_VolStyleList(TheDataList)[i];怎么能相等?
    代码只有片段,如果按照常理来看是不能相等的,关键是看你的TRD1_VolStyleLis是怎么写的?
      

  4.   

    有句這個:TheDataList := TRD1_VolStyleList.Create(True, PacketFileName);