Hallo Leute.
Ich habe ein Problem. Bestimmt wurde diese Problematik schon oft hier erwähnt, aber ich weiss nicht genau wie ich vorgehen soll.
Das Projekt um das es geht, kennen bestimmt schon einige. Tiereraten.
Nun soll ich dabei jeweils neue Tiernamen und das dazugehöroge Attribut abspeichern, so dass die Liste bzw. der Binärbaum immer mehr wird. Der Tiername + Attribut soll in eine Editkomponente, in einem neuen Formular, eingegeben werden. Buttons zum laden und speichern sind schon vorhanden.
Das Projekt sieht bislang so aus:
Delphi-Quellcode:
constructor TRateBaum.create(Tier_ja,Frage,Tier_nein:string);
var l_Baum,r_Baum TBinTree;
begin
l_Baum:=TBinTree.create(tString.create(Tier_ja));
r_Baum:=tBinTree.create(TString.create(Tier_nein));
hBaum:= TBinTree.create(TString.create(Frage),l_Baum,r_Baum);
kAktueller_Baum:=hBaum;
end;
function TRateBaum.liesAktuellenKnoten:string;
// var hilf:TObject;
begin
//hilf := kAktueller_Baum.getRootItem;
// result := TString(hilf);
result:= TString(kAktueller_Baum.getrootitem).lies_Inhalt;
end;
function TRateBaum.tierErreicht:boolean;
var hilf1, hilf2 : TBinTree;
begin
hilf1 := kAktueller_baum.getLeftTree;
hilf2 := kAktueller_Baum.getRightTree;
if (hilf2.isempty) and (hilf2.isempty) then
result := true;
end;
procedure TRateBaum.nach_rechts;
begin
kAktueller_Baum := kAktueller_Baum.getRightTree;
end;
procedure TRateBaum.nach_links;
begin
kAktueller_Baum := kAktueller_Baum.getLeftTree;
end;
procedure TRateBaum.zurueckSetzen;
begin
kAktueller_Baum:=hBaum;
end;
procedure TRateBaum.wissenErweitern(NeueFrage, NeuesTier:string; antwortJa:boolean);
var Tier_alt,Tier_neu,Frage_neu:Tstring;
begin
Frage_neu:=TString.create(neueFrage);
If AntwortJA then
begin
Tier_alt := TString(kaktueller_Baum.get_rootitem);
kAktueller_Baum.setitem(Frage_neu);
Tier_neu:= TString.create(NeuesTier);
kAktueller_baum.getrightTree.create(Tier_alt);
kAktueller_Baum.getlefttree.create(Tier_neu);
end
else
begin
Tier_alt := TString(kaktueller_Baum.get_rootitem);
kAktueller_Baum.setitem(Frage_neu);
Tier_neu:= TString.create(NeuesTier);
kAktueller_baum.getleftTree.create(Tier_alt);
kAktueller_Baum.getrighttree.create(Tier_neu);
end;
end;
TMemo
procedure TRateBaum.speicher(B:TBinTree);
end;
procedure TRateBaum.speichern; // savefileto..
begin
//
end;
procedure TRateBaum.lade(B:TBinTree);
begin
//
end;
procedure TRateBaum.laden; //load bzw. ladenfilefrom
begin
//
end;
destructor TRateBaum.destroy;
begin
//
end;
end.