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
Antwort Antwort
knocko

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

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

  Alt 17. Nov 2008, 13:17
Der Button soll:

a) Entweder neues Element in die Liste einfügen und dann die Felder quasi "vorbereiten", sodass ein neues nächstes Element eingetragen werden kann
b) oder (wenn schon eins vorhanden ist) soll er das vorhandene blos überschreiben bzw. aktualisieren und automatisch zum nächsten Listenglied wandern und anzeigen

Der Fall b) würde ja eintreffen, wenn ich Rückwärts in der Liste gehe.

Das ist mein "Übernehmen" Button.
Von mir aus kannst du auch andre Variablennamen nutzen. Die Namen sind nur ausm Internet rauskopiert
Dazu hab ich noch deinen Quelltext genommen

Code:
procedure TForm1.BitBtn3Click(Sender: TObject);    // Elemente einschreiben in Liste
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
    if akt^.Next <> nil then
      begin
        Edit1.Text := IntToStr(akt^.id);
        Edit2.Text := akt^.titel;
      end
    else
      begin
        Edit2.Text := '';
        Edit1.Text := IntToStr(akt^.id+1);
      end;
  akt := h1;
end;

Das ist mein Vorwärts-Button

Code:
procedure TForm1.BitBtn4Click(Sender: TObject);    // Vorwärts blättern
begin
  if akt^.Next <> NIL then                                                     { ** Wenn akt^.Next Inhalt aufweist, dann... ** }
    begin
      akt := akt^.Next;                                                        { ** ...geh bei jedem Klick auf den Vorwärts-Button ein Listenglied weiter. ** }
      Edit1.Text := IntToStr(akt^.id);                                             { ** Trägt die aktuellen ("akt") Werte, bei dem der Zeiger steht, in die Edit-Komponenten ** }
      Edit2.Text := akt^.titel;
    end
  else
    begin
      Edit1.Text := IntToStr(akt^.id+1);                                       { ** Wenn das Ende erreicht ist, werden die Felder so vorbereitet, dass man gleich ein neues Element eintragen kann ** }
      Edit2.Text := '';
    end;
end;

Der Button sorgt dafür, dass ich wieder am Anfang der Liste lande

Code:
procedure TForm1.BitBtn1Click(Sender: TObject);    // Erste Glied anzeigen lassen
begin
  akt := anf;                                                                  { ** Zeiger wird auf das erste Record gesetzt ** }
  Edit1.Text := IntToStr(akt^.id);                                             { ** Trägt die Werte vom ersten Listenglied in die Editkomponenten ein ** }
  edit2.Text := akt^.titel;
end;



Achso und PS:
Das Tutorial hab ich schon runtergeladen.
Ist eines von vielen auf meinem Desktop
Wie gesagt -> Fast alle Google Links sind Lila
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:51 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