is-Logo Karel D. Robot
TListe

S. Spolwig

[Delphi | OOP]
Startseite


TListe

Kurzbeschreibung Attribute Methoden

Klassendiagram

Die Klasse bildet eine Allgemeine dynamische Liste zur Verwaltung beliebiger        Daten-Objekte ab.

 

UNIT uDListe;
(* ******************************************************************** *)
(*                                                                      *)
(* K L A S S E   : TListe - (Teil-)abstrakte Klasse                     *)
(* -------------------------------------------------------------------- *)
(* Version       : 2.01                                                 *)
(* Autor         : (c) S. Spolwig, OSZ-Handel I, 10997 Berlin           *)
(*                                                                      *)
(* Aufgabe       : Allgemeine dynamische Liste zur Verwaltung beliebiger*)
(*                 Daten-Objekte.                                       *)
(*                 uDListe ist schnittstellen-kompatibel mit uSListe.   *)
(*                 Zum Bewegen in der Liste ist intern eine Listenmarke *)
(*                 mitgefuehrt, die die jeweils aktuelle Listenposition *)
(*                 bezeichnet. Alle Operationen werden auf der aktuellen*)
(*                 Position ausgefuehrt.                                *)
(*                 In abgeleiteten Klassen sollte der Elemententyp de-  *)
(*                 klariert und die abstrakten Methoden Load, Store und *)
(*                 SearchElement überschrieben werden.                  *)
(*                                                                      *)
(* Compiler      : Delphi 4.0                                           *)
(* Aenderung     : 2.01	- 13-OKT-00 	IsFull entfernt                 *)
(* ******************************************************************** *)
INTERFACE
(* ==================================================================== *)
type
  TListe  = class (TObject)
   protected
    Kollektion  : array of Pointer;
   private 
    Listenlaenge,             // Anzahl der belegten Elemente
    AktuellePos : integer;    // auf aktivem Element oder EoList
   public
    constructor Create;  virtual;
    procedure Init;
    procedure First;
    procedure Next;
    procedure previous;
    procedure Last;
    function  GetElement: pointer;
    procedure SetElement (Elem : pointer);
    procedure Append (Elem : pointer);
    procedure Remove;
    procedure RemoveAll;
    function  GetLen  : integer ;
    function  GetAktuellePos : integer;
    function  EoList  : boolean;
    function  IsFirst : boolean;
    function  IsLast  : boolean;
    function  IsEmpty : boolean;
    function  SearchElement (suchElem : pointer) : pointer; virtual; abstract;
    procedure Load (Dateiname : string);  virtual;   abstract;
    procedure Store(Dateiname : string);  virtual;   abstract;
  end;
(*  ----------------- B e s c h r e i b u n g -------------------------
Oberklasse     : TObject
Bezugsklassen  : -
Methoden
--------
Create
  Auftrag : Leere L. erzeugen
  vorher  : -
  nachher : ListenLaenge ist Null, AktuellePos ist 0.
Init
  Auftrag : L. initial.
  vorher  : L. ist vorhanden
  nachher : ListenLaenge ist Null, AktuellePos ist 0.
First
  Auftrag : Listenmarke auf das 1. (vorhandene) Element setzen
  vorher  : Die Liste ist nicht leer
  nachher : Aktuelle Position ist 1.
            Ist die Liste leer , geschieht nichts
Next
  Auftrag : Die Listenmarke auf das naechste Element setzen.
  vorher  : Die Liste ist nicht leer und akt. Pos ist nicht letztes El.
  nachher : Die Marke steht auf der neuen aktuellen Position
            ist die Liste leer oder EoList erreicht, geschieht nichts.
Previous
  Auftrag : Die Listenmarke um eins auf das vorhergehende Element zuruecksetzen
  vorher  : Die Liste ist nicht leer und akt. Pos ist nicht 1. Element.
  nachher : Die Marke steht auf der neuen aktuellen Position.
            Ist die Liste leer oder die aktuelle Position war 1, geschieht nichts.
Last
  Auftrag : Listenmarke auf das letzte Element der Liste setzen
  vorher  : Die Liste ist nicht leer.
  nachher : Letztes vorhandenes Element ist aktuelle Position
GetElement
  Anfrage : Zugriff auf das aktuelle Element zum Lesen
  vorher  : Die Liste ist nicht leer.
  nachher : GetElement liefert das aktuelle Element.
SetElement (Elem : Pointer)
  Auftrag : Zugriff auf die aktuelle Position zum Schreiben
  vorher  : Die Liste ist initialisiert.
  nachher : Elem ist an aktueller Position uebergeben
Append (Elem : Pointer)
  Auftrag : Neues Element an das Ende der Liste anhaengen.
            Wenn die Liste leer war, ist das neue El. das erste.
  vorher  : Die Liste ist initialisiert
  nachher : Listenlaenge ist um eins erhoeht. Ist die Liste voll,
            geschieht nichts.
Remove
  Auftrag: Das aktuelle Element loeschen.
  vorher : Die Liste ist nicht leer.
  nachher: Das aktuelle Element ist aus der Liste entfernt. Die Listen-
           laenge ist um eins vermindert. AktuellePos ist 0.
RemoveAll
  Auftrag: Alle Elemente aus der Liste entfernen
  vorher : -
  nachher: Die Liste ist leer. AktuellePosition ist 0.
EoList
  Anfrage: ob das Ende der Liste erreicht ist.
  vorher : Die Liste ist initialisiert.
  nachher: True, wenn Ende der Liste erreicht ist. Die Listenmarke
           steht hinter dem letzten belegten Element.
IsEmpty
  Anfrage: ob Liste leer ist
  vorher : Die Liste ist initialisiert.
  nachher: True, wenn die Liste leer ist.
GetLen
  Anfrage: gibt Listenlaenge zurueck
  vorher : Liste ist initialisiert
  nachher: -
SearchElement (suchElem : Pointer) : Pointer;
  Anfrage: ob suchElem in der Liste gefunden wurde
  vorher : -
  nachher: Gefundenes Element wird zurückgegeben. Wenn Liste leer ist oder
           nicht gefunden wird EoList zurückgegeben.
Load (dateiname : string);
  Auftrag: Liste aus externer Datei laden. Wenn keine Datei existiert,
           dann neue Datei mit der Laenge 0 anlegen.
  vorher : Die Liste ist initialisiert.
  nachher: Die Liste ist in den Arbeitsspeicher geladen. Datei ist geschlossen.
Store (dateiname : string);
  Auftrag: Liste in externe Datei speichern
  vorher : -
  nachher: Die Liste ist gespeichert. Ist die Liste leer, wird nichts
          gespeichert. Datei ist geschlossen.
----------------------------------------------------------------------- *)

 


©  05. Oktober 2008    Siegfried Spolwig

page_top