Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Pointer of Array of Pointer neues Prinzip (https://www.delphipraxis.net/164992-pointer-array-pointer-neues-prinzip.html)

DeddyH 9. Dez 2011 10:22

AW: Pointer of Array of Pointer neues Prinzip
 
Die Liste wird ja nicht benutzt, daran liegt es nicht. Ich habe den Code jetzt mal hier unter XE eingefügt und kompiliert, da kommen einige Warnungen und Hinweise, insbesondere in AddElement.

Marcel2906 9. Dez 2011 10:32

AW: Pointer of Array of Pointer neues Prinzip
 
Ahh, habs...also hoffe das ist so richtig..habe new(hlp) hinzugefüht

DeddyH 9. Dez 2011 10:36

AW: Pointer of Array of Pointer neues Prinzip
 
Ich habe AddElement mal umgeschrieben:
Delphi-Quellcode:
Procedure TForm1.AddElement(Wert: integer);
Var
  hlp, neu: PEintrag;
Begin
  // Anfang vorhanden ?
  If (First = Nil) Then
    Begin
      New(First);
      First^.Vorgaenger := Nil; // Der Anfang der Kette hat keinen Vorgänger;
      First^.Nachfolger := Nil; // Der Nachfolger ist auch erstmal nicht vorhanden.
      neu := First;
    End
  Else
    Begin
      hlp := First;
      While (hlp^.Nachfolger <> Nil) Do
        hlp := hlp^.Nachfolger;
      New(neu);
      neu^.Vorgaenger := hlp;
      neu^.Nachfolger := nil;
      hlp^.Nachfolger := neu;
    End;
  neu^.Wert := Wert;
End;

Bummi 9. Dez 2011 10:38

AW: Pointer of Array of Pointer neues Prinzip
 
Delphi-Quellcode:
Procedure TForm1.AddElement(Wert: integer);
Var
   hlp, hlp2: PEintrag;
Begin
   //Anfang vorhanden ?
   If (FIRST = Nil) Then Begin
      New(First);
      First^.Vorgaenger := Nil; //Der Anfang der Kette hat keinen Vorgänger;
      First^.Nachfolger := Nil; //Der Nachfolger ist auch erstmal nicht vorhanden.
      hlp2 := First;
     
   End Else Begin
      hlp := First;
      While (hlp^.Nachfolger <> Nil) Do
         hlp := hlp^.Nachfolger;
      new(hlp^.Nachfolger);
      hlp2 := hlp^.Nachfolger;
      hlp2^.Vorgaenger := hlp;
   End;
   hlp2^.Wert := Wert;
End;

DeddyH 9. Dez 2011 10:42

AW: Pointer of Array of Pointer neues Prinzip
 
Zu spät :tongue:

Bummi 9. Dez 2011 10:45

AW: Pointer of Array of Pointer neues Prinzip
 
wo ist die rote Box hingekommen .....

Marcel2906 9. Dez 2011 10:48

AW: Pointer of Array of Pointer neues Prinzip
 
danke :))
kann man das ergebnis leicht in eine TListBox eintragen.
Sodass er einfach von vorne nach hinten durchgeht und die Werte einträgt?

DeddyH 9. Dez 2011 10:49

AW: Pointer of Array of Pointer neues Prinzip
 
Ja klar.

[edit] Bei doppelt verketteten Listen macht es auch Sinn, neben First ein Last zu haben, das auf dem letzten Element steht, dann kann man die Liste sowohl von vorn als auch von hinten durchlaufen ;) [/edit]

Marcel2906 9. Dez 2011 11:06

AW: Pointer of Array of Pointer neues Prinzip
 
Wie kann ich denn sagen er soll alles ausgeben bis er zum letzten kommt.
Ich habs so probiert, er gibt mir dann die 10 ersten aus, leider zeigt er vorher wieder eine Fehlermeldung...glaube ich hab das mit dem Pointer noch nicht ganz verstanden.

Delphi-Quellcode:
Procedure TForm1.OutList;
Var
   x: integer;
   Next: pEintrag;
Begin
   new(Next);
   LBOutNumber.Items.Strings[0] := IntToStr(first.Wert);
   Next := first.Nachfolger;
   For x := 1 To 10 Do Begin
      LBOutNumber.Items.Strings[x] := IntToStr(Next.Wert);
      Next := Next.Nachfolger;
   End;
End;

Bummi 9. Dez 2011 11:19

AW: Pointer of Array of Pointer neues Prinzip
 
Delphi-Quellcode:
Procedure TForm1.OutList;
Var
   x: integer;
   Next: pEintrag;
Begin
   next := First;
   LBOutNumber.Items.Clear;
   while Assigned(next) do
      begin
        LBOutNumber.Items.Add(IntToStr(next.Wert));
        next := next.Nachfolger;
      end;
End;


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz