Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#11

AW: Abgeleitete generische Klasse ist nicht mehr generisch

  Alt 18. Okt 2018, 13:14
Im Zusammenhang mit diesem Problem ist mir bei einem ähnlichen Konstrukt ein weiterer seltsamer Effekt aufgefallen, der sich nicht sofort erschließt:
Delphi-Quellcode:
type
  TGenObj<T1, T2> = class
  public type
    TGenObjRec = record
      A: T1;
      B: T2;
    end;
    TGenObjRecs = TArray<TGenObjRec>;
  protected
    procedure SetRecs(const AValue: TGenObjRecs);
  public
    property Recs: TGenObjRecs write SetRecs;
  end;

  TGenIntStrObj = TGenObj<Integer, string>;

procedure TForm1.Button1Click(Sender: TObject);
const
  RECS: array[0..1] of TGenIntStrObj.TGenObjRec = (
    (A: 1; B: 'Foo'), // <-- @A: [dcc32 Fehler] E2071 Dieser Typ kann nicht initialisiert werden
    (A: 2; B: 'Bar')
  );
var
  LGenIntStrObj: TGenIntStrObj;
begin
  LGenIntStrObj := TGenIntStrObj.Create;
  try
    LGenIntStrObj.Recs := RECS;
  finally
    FreeAndNil(LGenIntStrObj);
  end;
end;
Warum ist das denn so?
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat