AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem mit doppelt Verkettete Liste - Zeiger - Wie? ^^
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit doppelt Verkettete Liste - Zeiger - Wie? ^^

Offene Frage von "knocko"
Ein Thema von knocko · begonnen am 17. Nov 2008 · letzter Beitrag vom 22. Nov 2008
 
knocko

Registriert seit: 9. Jun 2008
14 Beiträge
 
#1

Problem mit doppelt Verkettete Liste - Zeiger - Wie? ^^

  Alt 17. Nov 2008, 11:14
Hi Leute, ich hoffe ich bin hier im richtigen Forum.
Hoffe doch dass Zeiger zum ObjectPascal gehören.

Also mein Problem konnte Google nicht lösen.
Fast jeder Google-Link ist schon mit lilaner Farbe gekennzeichnet
Dazu kommt noch,dass mein Desktop jetzt mit haufen Beispielen und PDFs zugemüllt ist.
Nur nix davon bringt mich wirklich weiter.

Aber nun genug Offtopic.
Mein Problem ist folgendes:
Ich hab mir einen Zeiger definiert:
Code:
type
  PMyelement = ^TMyelement;
  TMyelement = record                                
           id: integer;
           titel: string;
           Next : PMyelement;
           Prev : PMyelement;
Dann kommen die globalen Variablen
Code:
var
  anf, akt, ende : PMyelement;                            { ** anf und akt stehen für Anfang und Aktuell ** }

Bis dahin kein Problem.
Jetzt (ich hoffe ich kriegs gut erklärt) möchte ich meinen Quelltext folgdendermaßen schreiben:
Das Einschreiben von Daten funktioniert schon.
Allerdings fügt er neue Elemente immer ganz hinten an.
Sagen wir aber ich befinde mich in der Mitte der Datensätze (die ich mit Hilfe von Vorwärts/Rückwärts-Buttons erreicht habe) und klicke nun auf "Übernehmen".
Dann soll er in dem aktuellen Datensatz nur die Daten "aktualisieren" und nicht hinten erneut speichern.
Anschließend soll er mir den nächsten Datensatz einfach anzeigen lassen.

Ich weiß ja auch warum er die Daten am Ende speichert, aber ich krieg diesen Fehler gedanklich nicht ausgemerzt!
Es fehlt mir irgendwo ne If-Abfrage die überprüft, ob der Zeiger nun am Ende des Datensatzes ist (sprich "nächste Datensatz := NIL")
oder ob da noch Datensätze folgen (sprich "nächste Datensatz <> NIL")
Ich hoffe einfach mal,dass die Beschreibung ausreicht für euch. Wenn es fragen gibt immer her damit!



Hier mein Quelltext zum Eintragen von Daten:
Code:
procedure TForm1.BitBtn3Click(Sender: TObject);    // Elemente einschreiben in Liste
var h1, h2 : PMyelement;   { ** h1 und h2 sind (H)ilfsvariablen ** }
begin
  new(h1);
  h1^.id := StrToInt(Edit1.Text) +1;
  h1^.titel := Edit2.Text;
  Edit1.Text := IntToStr(h1^.id);
  h1^.Next := NIL;
  if anf = NIL then
    begin
      anf := h1;
    end
  else
    begin
       h2 := anf;
       while (h2^.Next <> NIL) do
         begin
           h2 := h2^.Next;
         end;
       h2^.Next := h1;
     end;
  akt := h1;
end;

lg knocko
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:28 Uhr.
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