Registriert seit: 23. Mär 2009
16 Beiträge
|
Re: Wieso kann man Listenelemente nicht kopieren?
29. Mär 2009, 16:58
Delphi-Quellcode:
procedure TForm1.BaumgraphAnzeigen (Baum: TAVLBaum; Tiefe,X,DX: integer);
var Text: string;
XPos,YPos: integer;
begin
if not Baum.Leer then
begin
DX := DX div 2;
XPos := X;
YPos := Tiefe*40 + 20;
Text := baum.Wurzel.toString;
ImBaum.Canvas.Ellipse (XPos-10,YPos-5,XPos+24,YPos+15);
ImBaum.Canvas.TextOut (XPos,YPos-3,Text);
if not baum.rechts.Leer
then begin
ImBaum.Canvas.MoveTo (XPos+7,YPos+15);
ImBaum.Canvas.LineTo (XPos+7+DX,YPos+40);
end;
BaumGraphAnzeigen (baum.rechts,Tiefe+1,X+DX,DX);
if not baum.links.Leer
then begin
ImBaum.Canvas.MoveTo (XPos+7,YPos+15);
ImBaum.Canvas.LineTo (XPos+7-DX,YPos+40);
end;
BaumGraphAnzeigen (baum.links,Tiefe+1,X-DX,DX);
end;
end;
Der debugger zeigt mir diese Zeile an: Text := baum.Wurzel.toString;
Die Klasse sieht so aus:
Delphi-Quellcode:
type
TAVLBaum = class(TPersistent)
private
public
Wurzel : TItem;
Balance: Integer;
links: TAVLBaum;
rechts: TAVLBaum;
constructor create();overload;
constructor create(Werte: String);overload;
constructor create(pItem: TItem);overload;
function KntnFinden(pItem: TItem): Boolean;
function Hoehe(): Integer;
function toString():String;
function Leer():Boolean;
function KntnEinfuegen(pItem: TItem):boolean;
procedure Assign(Source: TPersistent);override;
procedure AssignTo(Dest: TPersistent);override;
procedure Sortieren;
procedure LLDrehung;
procedure LRDrehung;
procedure RRDrehung;
procedure RLDrehung;
end;
Vorher lief das Programm genau so. An den Elementen die ich erstelle hab ich nicht mehr rumgepfuscht.
Im Anhang ist alles.
|
|
Zitat
|