TClass = class(TObject)
...
...
end;TClasses
private
...
...
public 
  procedure Add(Value: TClass);
  procedure Delete(Value: TClass);
  property Item[Index: Integer] Read GetItem Write SetItem;
  property Count: Integer Read FCount;
end;请问如何完成这样的类?

解决方案 »

  1.   

    TClass  =  class(TObject)  
    ...  
    ...  
    end;  
     
    TClasses  
    private  
    ...  
    ...  
    public    
       procedure  Add(Value:  TClass);  
       procedure  Delete(Value:  TClass);  
       property  Item[Index:  Integer]: TClass  Read  GetItem  Write  SetItem;  
       property  Count:  Integer  Read  FCount;  
    end;
      

  2.   

    我是不是提了几个让高手觉得很过瘾的问题?呵呵,请各位高手回复,以上问题如果
    在TClasses中定义
     FItems: Array of TCLass;
    应该也可以实现,此时Delete的参数不是对象而一个Index,我不想这么用
      

  3.   

    没大搞消楚你的意思,请问是不是你要实现一个类TClasses,在这个类中可以实现TClass类的添加删除,以及可以按Item加索引值仿问?如果是这样的话,建议看Tlist类的源码,还是很好实现的.不过Tlist类中的每项是保存的数据的指针.
      

  4.   

    你可以內包一個TList 也可能從TList 過來!
      

  5.   

    睡醒了:
    type
      TClasses = class
      private
        FClasses: TList;
        FCount: Integer;
        function GetItem(Index: Integer): TClass;
        procedure SetItem(Index: Integer; Value: TClass);
      public
        constructor Create;
        destructor Destroy; override;
        procedure Add(Value: TClass);
        procedure Delete(Value: TClass);
        property Items[Index: Integer]: TClass read GetItem  write SetItem; default;
        property Count: Integer read FCount;
      end;implementation{ TClasses }procedure TClasses.Add(Value: TClass);
    begin
      FClasses.Add(Value);
    end;constructor TClasses.Create;
    begin
      FClasses := TList.Create;
    end;procedure TClasses.Delete(Value: TClass);
    begin
      FClasses.Extract(Value);
    end;destructor TClasses.Destroy;
    begin
      FreeAndNil(FClasses);
      inherited;
    end;function TClasses.GetItem(Index: Integer): TClass;
    begin
      Result := TClass(FClasses.Items[Index]);
    end;procedure TClasses.SetItem(Index: Integer; Value: TClass);
    begin
      FClasses.Items[Index] := Value;
    end;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————