Forum: Win32/Win64 API (native code)
Delphi
by Sir Rufo,
22. Sep 2015
Oder mit einer von diesen Routinen
http://docwiki.embarcadero.com/RADStudio/Seattle/de/Vergleichsroutinen
Forum: Win32/Win64 API (native code)
Delphi
by Sir Rufo,
21. Sep 2015
Man kann zum Sortieren der Liste auch einen Comparer mitgeben TList<T>.Sort( const Comparer: IComparer<T> );.
Der interne Comparer der Liste ist eigentlich für die Identität da. So wird dieser z.B. bei IndexOf oder Contains verwendet (unabhängig davon, wie die Liste jetzt sortiert ist).
Forum: Win32/Win64 API (native code)
Delphi
by Sir Rufo,
21. Sep 2015
Hmmm, ein reference to ... darf sowohl als auch sein ...
Forum: Win32/Win64 API (native code)
Delphi
by Sir Rufo,
21. Sep 2015
Passiert mir auch mal ganz gerne, darum war der Blick schon gleich geschärft ;)
Forum: Win32/Win64 API (native code)
Delphi
by Sir Rufo,
21. Sep 2015
Du hast das const vor Item1, Item2 vergessen ;)
Forum: Win32/Win64 API (native code)
Delphi
by Sir Rufo,
17. Jul 2015
So ist es ... nur dass du den Comparer nicht mehr ändern kannst ... dann musst du das mit dem BinarySearch verwenden (dort kannst du dann den gewünschten Comparer angeben).
Oder du machst es ganz anders und zwar mit einem TFunc<T1,T2,TResult>:
function TZielList.IndexOf<T>( AValue: T; APredicate : TFunc<T,TZiel,Boolean> ) : Integer;
var
LIdx: Integer;
LItem: TZiel;
begin
for LIdx...
Forum: Win32/Win64 API (native code)
Delphi
by Sir Rufo,
17. Jul 2015
Ich würde das allerdings gar nicht so kompliziert gestalten.
Erzeuge dir deine Instanzen und frage die Liste, ob so eine "gleiche" Instanz schon existiert TList<T>.Contains. Und wenn ja, dann kannst du die Instanz einfach an die Liste anfügen und sortieren lassen.
Forum: Win32/Win64 API (native code)
Delphi
by Sir Rufo,
17. Jul 2015
Du meinst sowas hier?
uses
Generics.Collections,
Generics.Defaults;
type
TZiel = class(TObject)
WERT1 : Word;
WERT2 : Word;
Forum: Win32/Win64 API (native code)
Delphi
by Sir Rufo,
17. Jul 2015
Du legst doch im Comparer fest, dass mit TZiel.Wert3 verglichen werden soll
function (const L, R: TZiel): Integer
begin
Result := AnsiCompareText(L.Wert3,Wert);
end
:gruebel:
Forum: Win32/Win64 API (native code)
Delphi
by Sir Rufo,
17. Jul 2015
Die Liste wird mit dem Comparer sortiert, wenn man TList<T>.Sort aufruft.
Will ich eine andere Sortierung haben, dann mit TList<T>.Sort( AComparer: IComparer<T> ) aufrufen.
Der Comparer, den man im Konstruktor mit angibt, sorgt nicht nur für die (Standard-)Sortierung, sondern damit wird auch die Gleichheit der Elemente ermittelt.
var
Ziel1, Ziel2, Ziel3 : TZiel;
ZielList :...
Forum: Win32/Win64 API (native code)
Delphi
by Sir Rufo,
17. Jul 2015
uses
Generics.Collections,
Generics.Defaults;
type
TZiel = class(TObject)
WERT1 : Word;
WERT2 : Word;
WERT3 : String;
WERT4 : String;