Re: Array Sortieren
Zitat:
|
Re: Array Sortieren
OK, schau dir meinen letzten Beitrag an und schau ob das jetzt geht.
Dann hättest du vielleicht nochmal explizit deinen record Aufbau bitte posten sollen. |
Re: Array Sortieren
Hmmm...
Wenn ich nun diesen Record Fülle Bsp.: TelefonBArr[1].Name:='Bla'; und TelefonBArr[2].Name:='BlaBla'; dann auf Sortiere klicke wird die ListBox Cleared und dann passiert nix mehr ? :gruebel: |
Re: Array Sortieren
Poste doch mal bitte deinen bisherigen für uns zur Problemlösung relevanten Code!
|
Re: Array Sortieren
Zitat:
if TelefonBArr[j].Name< TelefonBArr[i].Name then Swap(i,j); <= man kann keine FOR Schleifen variablen als var-parameter an andere Prozeduren übergeben ! (Sagt Delphi :D ) |
Re: Array Sortieren
Jo, wenn dann so:
Delphi-Quellcode:
Swap(TelefonBArr[i], TelefonBArr[j])
|
Re: Array Sortieren
Zitat:
Matze's Vorschlag bringt nichts. |
Re: Array Sortieren
Zitat:
Fehler: Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen. @Typercon: Jo jetzt kann man wieder compilen aber das problem mit der leeren ListBox besteht weiterhin |
Re: Array Sortieren
Natürlich nicht, nimm das var weg und der Teil wird gehen! Du sollst nur den Index übergeben.
Dann poste doch mal bitte deinen jetzigen Stand vom Code. Bin bis Donnerstag wahrscheinlich nicht mehr online. |
Re: Array Sortieren
So hier mal der bisherige code:
Delphi-Quellcode:
type TDatum = record
Tag : Byte; Monat : Byte; Jahr : Integer; end; TSchuelerRec = record Name : String[25]; Vorname : String[25]; Gebdatum : TDatum; VName : String[25]; MName : String[25]; EinschulD : TDatum; Klasse : Char; Klassenst : Integer; Status : Boolean; end; TSchuelerArr = Array[1..100] of TSchuelerRec; var SchuelerArr : TSchuelerArr; //mir egal welchen arr namen ihr nimmt... :) ... ... ... procedure TForm1.Swap(i,j: Integer); var dummy: TSchuelerRec; begin dummy := SchuelerArr[j]; 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:= i + 1 to High(SchuelerArr) 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 (SchuelerArr[i].Name<>'') then ListBox1.Items.Add(SchuelerArr[i].Name); end end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 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