Hidiho,
ich hab mir, wie hier im Forum irgendwo beschrieben war, eine Sortierfunktion für eine TList von mir gebastelt.
Diese TList beinhaltet x TStringLists.
Gehe ich die Liste mit for durch, funktioniert das einwandfrei.
Sprich, ich kann jedes Element der TList problemlos in eine TStringList umwandeln und dann damit arbeiten.
In meiner Sortierfunktion klappt das aber komischerweise nicht, da stürzt er mir immer ab, wenn ich "item2" umwandeln möchte ("item1" funktioniert prächtig).
Hat wer ne Idee, woran das liegen könnte?
Das Sort wird übrigens in der gleichen Funktion aufgerufen, in der ich per For auf die Liste zugreife, also an sich müsste die TList da ok sein.
...
Hier noch mal der relevante Quelltext den ich verwende:
Delphi-Quellcode:
//...
type
{*--- functions ---*}
TSourceSorter = function(item1, item2: Pointer): Integer of object;
//...
{*--- TfrmMain ---*}
TfrmMain = class(TForm)
private
sourceSorter: TSourceSorter;
function compareSources(item1, item2: Pointer): Integer;
//...
procedure TfrmMain.FormCreate(Sender: TObject);
begin
sourceSorter := compareSources;
end;
//...
// builds the data-list based on the given source-list
function TfrmMain.buildDataList(sourceList: TList): TList;
begin
sourceList.Sort(TListSortCompare(@sourceSorter)); // <- Abbruch!
// loop through each source-set
for sourceIdx := 0 to sourceList.Count - 1 do
begin
curSource := TStringList(sourceList[sourceIdx]); // <- Funktioniert einwandfrei
sourceType := StrToInt(curSource[0]);
//...
// sorts the given source-sets
function TfrmMain.compareSources(item1, item2: Pointer): Integer;
begin
// cast items to sets
set1 := TStringList(item1);
set2 := TStringList(item2); // <- Zugriffsverletzung
Danke im voraus
cu Patrick