Einzelnen Beitrag anzeigen

Benmik

Registriert seit: 11. Apr 2009
547 Beiträge
 
Delphi 11 Alexandria
 
#1

Warum gibt es hier eine Acess Violation?

  Alt 7. Dez 2018, 23:03
In einem Modul deklariere ich:
Delphi-Quellcode:
type
  TDing = class(TObject)
    Nr: integer;
  end;
  TDingliste = class(TObjectList<TDing>)
  ...
  ...
  end;
In einem anderen Modul verwende ich das:
Delphi-Quellcode:
procedure Test;
var Dingliste:TDingliste;

  procedure Initialisiere;
  begin
    Dingliste := TDingliste.Create;
  end;

  procedure HierKnallts;
  var Ding:TDing;
  begin
    Ding := TDing.Create;
    Ding.Nr := 1;
    Dingliste.add(Ding); // Access Violation
  end;

begin
  Initialisiere;
  HierKnallts;
end;
Das verstehe ich nicht. Dingliste wird ordnungsgemäß erstellt und ist verfügbar. Nehme ich eine globale Variable für Dingliste, gibt es keine Probleme.

Geändert von Benmik ( 8. Dez 2018 um 00:04 Uhr) Grund: "begin" sollte schon da sein
  Mit Zitat antworten Zitat