Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Liste mit ADTL, Liste lässt sich nicht erstellen (https://www.delphipraxis.net/87514-liste-mit-adtl-liste-laesst-sich-nicht-erstellen.html)

Radon 1. Mär 2007 17:23


Liste mit ADTL, Liste lässt sich nicht erstellen
 
Hallo!

Ich bin dabei mich so ein wenig in Delphi einzuarbeiten, und hatte eine Idee für ein kleines Progrämmchen. Es geht darum, Shortcuts einzugeben, diese Speichern zu können und beim Öffnen des Programms auch einsehen zu können. Alle Informationen werden in einer Ini dafür gespeichert und von dort aus auch geladen.

Aus dem Informatikunterricht habe ich den Umgang mit einem sogenannten ADTL gelernt, das heißt "Abstrakter DatenTyp Liste" und verkörpert eine neue Klasse, eine Liste auf Basis von linearen Verkettungen mit dem Element "TElement".

Nun habe ich mir gedacht, dass ich während der Laufzeit des Programms die Datenbank in einer solchen Liste zwischenspeichern könnte und sie bei Bedarf einfach in den TValueListEditor einlesen könnte.

Ich bin noch ziemlich am Anfang, da tut sich mir bereits ein unlösbares Problem auf, denn die Liste lässt sich in keinster weiese bearbeiten. Schon beim erstellen meckert sie rum, ich bekomme also bei jeder Art Zugriff eine Zugriffsverletzung als Error.

Mit der Unit "UnitADTL" habe ich schon simple lauffähige Programme erstellt im Unterricht (die Unit ist sogar vom Lehrer) daher denke ich nicht dass der Fehler dort liegt.

Die Liste wird über die Unit und die Klasse TIniHandler (meine eigene Klasse zur vereinfachten Arbeit mit dem Ini system) erstellt und bearbeitet.

Ich komme da echt nicht weiter und brauche Hilfe. Wo liegt mein Fehler?


Hier der Downloadlink für das komplette Programm.

Wär echt froh wenn sich jemand die Zeit dafür nimmt :love:

shmia 1. Mär 2007 18:02

Re: Liste mit ADTL, Liste lässt sich nicht erstellen
 
Zitat:

Zitat von Radon
Mit der Unit "UnitADTL" habe ich schon simple lauffähige Programme erstellt im Unterricht (die Unit ist sogar vom Lehrer) daher denke ich nicht dass der Fehler dort liegt.

Auwa; schönen Gruß an deinen Lehrer aber die Unit ist doch sehr unsauber!
Hier ein Ausschnitt:
Delphi-Quellcode:
var Liste: TListe; // Globale Variable ohne Sinn
...
procedure TListe.Naechstes;
begin
  if not Liste.AmEnde then FAktuell:= FAktuell.GetNext;
//       ^^^^^  GANZ schlecht, LÖSCHEN
end;
Die Klasse TListe funktioniert nur dann, wenn mit der globalen Variablen Liste gearbeitet wird.
Wenn du dir dein eigenes Objekt von TListe anlegst, dann -> Cash.
Abhilfe: globale Variable "Liste" löschen

Auch sonst ist das ganze Design eher schlecht...
PS: bitte nur den Sourcecode als Download anbieten, die vielen DCUs und *.~ kosten nur unnötig Bandbreite.

PPS:
Delphi-Quellcode:
procedure TIniHandler.IniEinlesen;
var
  ini: TIniFile;
  sTempDat, sTempSectName: string;
  n: integer;
begin
//  lDatensaetze.Create; // FALSCH !
  lDatensaetze:= TListe.Create; // Richtig


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 Uhr.

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