unit Unit1;
interface
uses
Windows, SysUtils, Classes, Forms, StdCtrls, Controls;
type
TZusatzDaten =
class(TObject)
public
FVorname :
string;
FAlter : Integer;
constructor Create(Vorname:
string; Alter : Integer);
end;
type
TForm1 =
class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
sl : TStringList;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TZusatzDaten.Create(Vorname :
string; Alter : Integer);
begin
Self.FVorname := Vorname;
Self.FAlter := Alter;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i,j : Integer;
Eintrag : TZusatzDaten;
begin
Memo1.Clear;
sl := TStringList.Create;
try
sl.AddObject('
Franzen', TZusatzdaten.Create('
Dieter', 36));
sl.AddObject('
Hansen', TZusatzdaten.Create('
Hans', 45));
sl.AddObject('
Petersen', TZusatzdaten.Create('
Klara', 21));
// Wert an Position "Hansen" einfügen
i := sl.IndexOf('
Hansen');
sl.InsertObject(i, '
Paulsen', TZusatzDaten.Create('
Paul', 29));
// Wert ändern
Eintrag := TZusatzDaten(sl.Objects[0]);
Eintrag.FVorname := '
Franz';
// Wert anders ändern
Eintrag := sl.Objects[3]
as TZusatzDaten;
Eintrag.FVorname := '
Peter';
for i := 0
to sl.Count -1
do
Memo1.Lines.Append(sl[i] + '
, ' + TZusatzdaten(sl.Objects[i]).FVorname + '
Alter: ' + IntToStr(TZusatzdaten(sl.Objects[i]).FAlter));
Memo1.Lines.Append('
');
Memo1.Lines.Append('
sl Sortieren');
sl.Sort;
// Sortieren
for i := 0
to sl.Count -1
do
Memo1.Lines.Append(sl[i] + '
, ' + TZusatzdaten(sl.Objects[i]).FVorname + '
Alter: ' + IntToStr(TZusatzdaten(sl.Objects[i]).FAlter));
sl.Exchange(0,1);
// die beiden Werte tauschen
Memo1.Lines.Append('
');
Memo1.Lines.Append('
Tauschen 0 & 1');
for i := 0
to sl.Count -1
do
Memo1.Lines.Append(sl[i] + '
, ' + TZusatzdaten(sl.Objects[i]).FVorname + '
Alter: ' + IntToStr(TZusatzdaten(sl.Objects[i]).FAlter));
// Nach Alter sortieren
for i := sl.Count -1
downto 1
do
for j := 1
to i
do
if TZusatzdaten(sl.Objects[j-1]).FAlter > TZusatzdaten(sl.Objects[j]).FAlter
then sl.Exchange(j-1,j);
Memo1.Lines.Append('
');
Memo1.Lines.Append('
Nach Alter sortieren');
for i := 0
to sl.Count -1
do
Memo1.Lines.Append(sl[i] + '
, ' + TZusatzdaten(sl.Objects[i]).FVorname + '
Alter: ' + IntToStr(TZusatzdaten(sl.Objects[i]).FAlter));
finally
for i := 0
to sl.Count -1
do
if Assigned(sl.Objects[i])
then sl.Objects[i].Free;
sl.Free;
end;
end;
end.