ich komm nicht weiter, leider.
Ich möchte eine Objectlist sortieren und habe dazu eine Funktion geschrieben, die ich per sort aufrufen möchte. Aber mein Compiler will nicht und meint 'wrong number of parameters' etc. Ich habe dutzende Threads und 'examples' durchsucht, sehe aber einfach nicht, was bei mir schief läuft.
die wichtigen Teile, denke ich, sind Deklaration und Aufrufe - also hier:
Code: Alles auswählen
interface
uses
Classes, SysUtils, Graphics,
StrUtils, Testing, Pfade, Contnrs;
type
TMarkerliste = class(TObjectlist)
function Vergleiche(item1: Pointer; item2: Pointer): integer;
end;
[...]
implementation
function TMarkerliste.Vergleiche(item1: Pointer; item2: Pointer): integer;
var
A,B: TDBMarker;
begin
A:=TDBMarker(item1); B:=TDBMarker(item2);
if (A.Orig.Zeile < B.Orig.Zeile) then result:= -1;
if (A.Orig.Zeile > B.Orig.Zeile) then result:= 1;
if (A.Orig.Zeile = B.Orig.Zeile) then begin
if (A.Orig.Element < B.Orig.Element) then result:= -1;
if (A.Orig.Element > B.Orig.Element) then result:= 1;
end;
end;
[...]
procedure TM.sortieren;
var
i: integer;
begin
Markerliste:=TMarkerliste.Create;
for i:=1 to High(DB) do begin
MarkerListe.Add(DB[i]);
end;
Markerliste.Sort(M.Markerliste.Vergleiche); // hier meckert der compiler
end;
Grüße.