UNIT mTListe;
interface
//-------------------- ggf Uses-Liste anpassen ! --------------------
uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, ComCtrls, Menus, mTVokabel;
type
TListe =
class
public //Attribute
Laenge : Integer;
Erste : TVokabel;
//Objektbeziehungen:
// kenntTVokabel : TVokabel;
public //Methoden
constructor initList (E:
String; D:
string);
virtual;
procedure hinzufuegen (E:
String; D:
string);
virtual;
function abfragen (n: integer) :
string;
virtual;
function Dabfragen (n: integer) :
string;
virtual;
function zufallfragenE (n: integer) :
string;
virtual;
function zufallfragenD (n: integer) :
string;
virtual;
procedure loeschen(n: integer);
virtual;
end;
implementation
//+---------------------------------------------------------------------
//| TListe: Methodendefinition
//+---------------------------------------------------------------------
//-------- initList (public) -------------------------------------------
constructor TListe.initList (E:
String; D:
string);
var V: TVokabel;
begin
Laenge := 1;
//Liste enthaelt erstmal 1 Vokabel
V := TVokabel.initVok(E,D);
// Erzeuge mir eine Vokabel mit dem Wort Vok HIER PROBLEM
Erste := V;
end;
//-------- hinzufuegen (public) ----------------------------------------
procedure TListe.hinzufuegen (E:
String; D:
string);
var aktVok, neueVok: TVokabel; i: Integer;
begin
neueVok := TVokabel.initvok(E,D);
//Erzeuge erstmal Vokabel
// 1. Fall: Es gab bisher nur 1 Vokabel
if Laenge = 1
then
Erste.Naechste := neueVok
else
begin
aktVok := Erste;
for i := 1
to Laenge -1
do //Achtung
begin
aktVok := aktVok.Naechste
// die neue Aktuelle ist die alte Naechste
end;
aktVok.Naechste := neueVok;
end;
inc(Laenge);
end;
//-------- abfragen (public) -------------------------------------------
function TListe.abfragen (n: integer) :
string;
var i: integer; vokabel: Tvokabel;
begin
Vokabel := Erste;
//n := Random(t);
for i:= 1
to n - 1
do
begin
Vokabel := vokabel.naechste;
end;
result := vokabel.englisch;
end;
function TListe.Dabfragen (n: integer) :
string;
var i: integer; vokabel: Tvokabel;
begin
Vokabel := Erste;
//n := Random(t);
for i:= 1
to n - 1
do
begin
Vokabel := vokabel.naechste;
end;
result := vokabel.Deutsch;
end;
function Tliste.zufallfragenD (n: integer) :
string;
var i:integer; vokabel: Tvokabel;
Begin
vokabel := erste;
for i := 1
to n - 1
do
begin
vokabel := vokabel.naechste;
end;
result := vokabel.englisch;
end;
function Tliste.zufallfragenE (n: integer) :
string;
var i:integer; vokabel : tvokabel;
Begin
vokabel := erste;
for i := 1
to n - 1
do
begin
vokabel := vokabel.naechste;
end;
result := vokabel.deutsch;
end;
procedure TListe.loeschen (n:integer);
//FEHLER
var i:integer; vokabel,vokabel2 : tvokabel;
Begin
vokabel := erste;
for i := 1
to n - 2
do
begin //naechte.naechste
vokabel := vokabel.naechste;
end;
vokabel2 := vokabel.naechste;
vokabel.naechste := vokabel.naechste.naechste;
vokabel := vokabel2;
vokabel.destroy;
laenge := laenge - 1;
end;
end.