Kod: Tümünü seç
TAtaDal = class(TPersistent)
private
FKok: TAtaDal;
FDallar: TList;
FOlGezinti: TOlGezinti;
FOlDal: TOlDal;
function DalSil(Dal: TAtaDal): boolean;
function DalEkle(Dal: TAtaDal): boolean;
function GetDal(Fih: integer): TAtaDal;
procedure SetKok(const Value: TAtaDal);
function GetFihrist: integer;
procedure SetFihrist(const Value: integer);
function GetDalSayisi: integer;
function GetDalSayTum: integer;
function GetAgac: TAtaDal;
function GetGobek: integer;
function Gez(BasDal: TAtaDal; AltDallar: boolean): boolean;
protected
procedure Gezin(AltDallar: boolean); virtual;
function Ekle: TAtaDal; virtual;
function Bul(Dal: TAtaDal; AltDallar: boolean): Boolean; virtual;
function Kokmu(Dal: TAtaDal): boolean; virtual;
property DalSayTum: integer read GetDalSayTum;
property Agac: TAtaDal read GetAgac;
property Gobek: integer read GetGobek;
property OlGezinti: TOlGezinti read FOlGezinti write FOlGezinti;
public
constructor Create(BKok: TAtaDal); virtual;
destructor Destroy; override;
procedure Temizle;
property Dallar[Fihrist: integer]: TAtaDal read GetDal;
property DalSayisi: integer read GetDalSayisi;
property Kok: TAtaDal read FKok write SetKok;
property Fihrist: integer read GetFihrist write SetFihrist;
property OlDal: TOlDal read FOlDal write FOlDal;
end;
destructor TAtaDal.Destroy;
begin
if FKok <> nil then
FKok.DalSil(Self);
Temizle;
FDallar.Free;
inherited Destroy;
end;
procedure TAtaDal.Temizle;
begin
while FDallar.Count > 0 do
TAtaDal(FDallar.Last).Free;
end;
function TAtaDal.DalSil(Dal: TAtaDal): boolean;
begin
Result := true;
if Assigned(FOlDal) then
FOlDal(Dal, isSil, Result);
if Result then
FDallar.Remove(Dal);
end;
Kodları Code tagı icine alırsanız daha duzenli gorunur-gkimirti