Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
12. Nov 2014
Ich hab mal schnell unter XE eine kleine unkommentierte Demo geschrieben.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
12. Nov 2014
Was hat denn der Wert einer Eigenschaft eines Eintrags mit der tatsächlichen Anzahl der in der Liste vorhandenen Einträge zu tun?
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
12. Nov 2014
Der Tausch erfolgt intern in der Sort-Methode der Liste.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
12. Nov 2014
Die Funktion steht doch schon in #19.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
12. Nov 2014
Die Vergleichsfunktion ist ein TComparison. Leider ist dieser in der Hilfe nicht sonderlich detailliert erklärt, aber Du kannst Dir auch TListSortCompare anschauen, die Funktionsweise ist ja die Gleiche, wenn mich nicht alles täuscht.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
12. Nov 2014
Die Sortierung an sich übernimmt die Liste selbst, Du musst nur die Vergleichsfunktion schreiben, die festlegt, wann ein Item "kleiner" als das andere ist. Diese Vergleichsfunktion kannst Du sogar beim Aufruf als anonyme Methode übergeben. Ungetestet:
List.Sort(TComparer<TWort>.Construct(
function(const Left, Right: TWort): integer
begin
Result := Left.iAnzahl - Right.iAnzahl;
...
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
12. Nov 2014
iAnzahl dürfte ja ein Ordinaltyp (Integer?) sein. Also gibt High(List.iAnzahl) immer denselben Wert zurück, nämlich den des maximal möglichen für den Typ von iAnzahl, im Falle von Integer also MAXINT.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
12. Nov 2014
Schau doch bitte mal nach: High().
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
12. Nov 2014
TObjectList enthält bereits eine Sort-Methode, da böte es sich ja an, diese zu benutzen. Aber selbst wenn nicht: was versuchst Du mit dem High() zu ermitteln, mir ist das nicht klar?
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
12. Nov 2014
Wäre es nicht einfacher, die Suche in eine eigene Methode auszulagern? Dazu könnte man entweder die Liste erweitern, oder man macht es zur Not von außen.
function TWasWeißIch.IndexOfToken(const Token: string): integer;
var
idx: integer;
begin
Result := -1;
for idx := 0 to List.Count - 1 do
if Token = List.sWort2 then
begin
Result := idx;