Einzelnen Beitrag anzeigen

Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#20

Re: Problem mit einer Stringlist und Pointern

  Alt 11. Jan 2007, 15:44
Aber warum ändert sich P, wenn ich nur MyResult ändere? Das will mir irgendwie nicht in den Kopf gehen...
Delphi-Quellcode:
procedure TBauteilListe.GetPBauteil(ID: string);

  procedure Rekursiv(p: PBauteil;const Search: string; var MyResult: PBauteil);
  var i: integer;
  begin
    if p <> nil
      then
        if p^.ID = Search
          then
            MyResult := p
          else
        if length(p^.Next) > 0
          then
            for i := low(p^.next) to high(p^.next) do
              Rekursiv(p^.next[i],Search,p);
  end;

begin
  Rekursiv(FRoot,ID,FPBauteil); // FPBauteil ist das Ergebnis, ein Pointer, der Auf das gefundene bauteil zeigt, Private Variable Meiner Klasse, die Klasse sieht so aus:
end;
type
  TBauteilListe=class(Tobject)
  private
    FRoot,
    FPBauteil: PBauteil;
    FList: TStringlist;
    function GetBauteil(ID: string): PBauteil;
    function GetText: string;
    procedure GetPBauteil(ID: string);
    procedure SetLines(var MyResult: TStringlist);
    procedure NilBauteile;
  public
    constructor Create;
    destructor Destroy; override;
    function Attach(ParentID,ChildID: string): boolean;
    function AddBauteil(ID: string; Typ: TBauteilTyp; Parent: string): boolean;
    property Items[ID: string]: PBauteil read GetBAuteil;
    property Text: string read GetText;
  end;
Ich blick da einfach nicht durch, warum das mit P so ist, und weiß nicht wie ich es anders machen kann, sitzt da jetzt seit nen paar stunden dran, es wäre nett, wenn du mir das umschreiben könntest...
Richard Mahr
  Mit Zitat antworten Zitat