Funktioniert denn der Advanced Record auch mit den Generischen Listen?
Habe den zwar noch nicht verwendet, funktioniert laut Doku aber wie ein Obkekt oder eine Klasse. man kann Methoden hinzufügen, aber nichts vererben,
Sollte dann aber wie eine Klasse funktionieren und genau so referenziert werden. Ist das richtig verstanden?
Mein Beispiel habe ich jetzt wie folgt geändert, bekomme aber immer noch keine Ausgabe. Ich beziehe mich daei auf example6.lpr von hier:
https://github.com/silvercoder70/code-e ... ample6.lpr
Code: Alles auswählen
  { TData }
  TData = class(TComponent)
  private
     FFirstName: string;
     FFamilyName: String;
  public
     constructor Create(aFirst, aLast: String);
     property FirstName: String read FFirstName;
     Property FamilyName: String read FFamilyName;
  end;
  TDataList = specialize TFPGList<TData>;
  TDataListEnumerator = specialize TFPGListEnumerator<TData>;
var
  Data: TData;
  DataList: TDataList;
  EnumList: TDataListEnumerator;
  SortedList: TSortedItems;
begin
  DataList := TDataList.Create;
  DataList.Add(TData.Create('Kurt','Mieth'));
  DataList.Add(TData.Create('Karl','Lauterbach'));
  DataList.Add(TData.Create('Ursula','Handrick'));
  DataList.Add(TData.Create('Sabine','Wehner'));
  DataList.Add(TData.Create('Andrea','Dachselt'));
  DataList.Add(TData.Create('Ulrike','Schneider'));
  DataList.Add(TData.Create('Dorothee','Konradi'));
  DataList.Add(TData.Create('Lutz','Schäfer'));
  DataList.Add(TData.Create('Carola', 'Flechner'));
  DataList.Sort(@CompareAscending); nach example6.lpr im obigen Link
  ENumList := DataList.GetEnumerator;  //nach example6.lpr im obigen Link  Enumerator zuweisen
  while EnumList.MoveNext do   //nach example6.lpr im obigen Link prüfen ob noch weitere Eintäge da sind
  begin
    Data := EnumList.Current;  //nach example6.lpr  aktuellen Eintrag holen
    writeln(Data.FirstName,'    ',Data.FamilyName);  //nach example6.lpr  aktuellen Eintrag ausgeben
  end;
  
  DataList.Free;   //Liste frei geben
 
  writeln('Zurück mit <<ENTER>>...');
  
 
end.
Warum erhalte ich nun immer noch keine Ausgabe?
Ich kann mir nicht vorstellen wieso bei einem Advanced Record die Ausgabe auf einmal funktionieren sollte.
Ich muss dann Advaced Records verlangrn duch {$modeswitch advancedrecords} und lt. Doku auch voher noch {$mode objfpc} und danch die advancedrecords einstellen.
Mein Advanced Record sieht daher so aus: 
Im Projekt {$mode objfpc}{$H+}{$modeswitch advancedrecords}
type
  
  TDataRecord = record
    FFirstName: string;
    FFamilyName: String;
    function FirstName: String;
    function FamilyName: String;
  end;
function TDataRecord.FirstName: String;
begin
   Result := FFirstName;
end;
function TDataRecord FamilyName: String;
begin
   Result := FFamilyName;
end;
Mein Quellcode benutzt aber noch meinen alten TData Typ.
.