Einzelnen Beitrag anzeigen

ozz

Registriert seit: 26. Jun 2005
131 Beiträge
 
#1

create ruft destroy auf???

  Alt 10. Mär 2007, 14:46
Hallo Leute,
wie kann es sein, das ein Constructor den Destructor der aufrufenden Klasse aufruft?Ich versuche per
var1:=TTagList.create einen neue Instanz zu erzeugen, jedoch springt der Constructor (auch wenn die auskommentieren Aufruf drin sind) direkt in den Destructor der aufrufenden Klasse. Dann bekomme ich natürlich eine Fehler. In diesem Fall Runtime Error216 at######. Hat jemand einen Tip für mich ?

Vielen Dank!


Delphi-Quellcode:
interface
uses Classes,
     Contnrs,//TObjectList
     Variants;

type TTag = class
FTag: string;
FTag1: string;
FTag2: string;
public
      constructor Create;
      destructor Destroy;override;
      property Tag : String read FTag write FTag;
      property element1 : String read FTag1 write FTag1;
      property element2 : String read FTag2 write FTag2;
end;//Type



type TTagList= class (TObject)

 FTaglist:TObjectlist;
 function Get(Index: Integer): TTag;
 procedure Put(Index: Integer; const Value: TTag);

public
   constructor Create;
   destructor Destroy;override;
   function Add:integer;
   function Additem(Item:TTag):integer;
   procedure Delete(Index:integer);
   function Count :integer;
   property item[Index: Integer]: TTag read Get write Put;
end;

implementation

constructor TTag.create;
begin;
  FTag:=null;
  FTag1:=null;
  FTag2:= null;
  //inherited;
end;

destructor TTag.destroy;
begin;
  //inherited destroy;
end;

constructor TTagList.create;
begin;
  //FTagList:=TObjectList.Create(true);
  //inherited create;
end;

destructor TTagList.destroy;
begin;
  FTagList.Free;
  inherited destroy;
end;

function TTagList.Add: Integer;
var TagType: TTag;
begin
    TagType:=TTag.Create;
    Result:=FTagList.add(TagType);
end;

function TTagList.Additem(Item: TTag): Integer;
var TagType: TTag;
begin
    TagType:=TTag.Create;
    TagType:=Item;
    Result:=FTagList.add(TagType);
end;

function TTagList.count: Integer;
begin
    Result:=FTagList.count;
end;

function TTagList.Get(Index: Integer):TTag;
begin
  result:= TTag(FTagList.Items[Index]);
end;

procedure TTagList.Put(Index: Integer; const Value: TTag);
begin
    FTagList[Index]:=Value;
end;

procedure TTagList.Delete;
begin
    FTagList.Delete(Index);
end;

end.
  Mit Zitat antworten Zitat