So, dass wirklich letzte mal für heute:
Delphi-Quellcode:
type
TSchuelerRec = record
Name : String[25];
end;
TForm1 = class(TForm)
ListBox1: TListBox;
SortBtn: TButton;
procedure SortBtnClick(Sender: TObject);
private
{ Private-Deklarationen }
SchuelerArr : array[1..100] of TSchuelerRec;
procedure Swap(i,j: Integer);
procedure Sortiere;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Swap(i,j: Integer);
var dummy: TSchuelerRec;
begin
dummy := SchuelerArr[i];
SchuelerArr[i] := SchuelerArr[j];
SchuelerArr[j] := dummy;
end;
procedure TForm1.Sortiere;
var i,j: integer;
begin
for i:= Low(SchuelerArr) to High(SchuelerArr) do
for j:= High(SchuelerArr) downto i + 1 do begin
if SchuelerArr[j].Name < SchuelerArr[i].Name then Swap(i, j)
end;
end;
procedure TForm1.SortBtnClick(Sender: TObject);
var i: integer;
begin
Sortiere;
ListBox1.Clear;
for i := Low(SchuelerArr) to High(SchuelerArr) do begin
if (trim(SchuelerArr[i].Name) <> '') then begin//wobei ich schon verhindern würde, dass man leere Einträge überhaupt einfügen kann!
ListBox1.Items.Add(SchuelerArr[i].Name);
end;
end;
end;
Schau dir mal dynamishce Arrays an, so ist das ja nicht gerade elegant. Funktioniert aber. War nen Fehler in der Swap Prozedure.