Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

Interner Fehler: C1264

  Alt 27. Nov 2013, 20:58
Ich hab einem Record ein Event spendieren wollen. Da bekomme ich jetzt plötzlich folgenden Fehler ***:

[DCC Fehler] uMaterial.pas(343): F2084 Interner Fehler: C1264
Was kann man denn da machen (Ich hab von "früher" halt viele Records)?

Delphi-Quellcode:
  TMaterialItemChanged = procedure of object;

  TMaterialItem = record // Methoden nicht für property TMaterial Items;
  private
    FE: double;
    FG: double;
    FGM: double;
    FAlphaT: double;
    FFyk: double;
    FName: string;
    FOnMaterialItemChanged: TMaterialItemChanged;
    function GetGM(Querdehnzahl: double): double;
    procedure SetGM(const Value: double);
  public
    procedure Clear;
    procedure Assign(const Value: TMaterialOldItem);
    procedure LoadUserMatFromFile(Index: TMaterialType);
    procedure SaveUserMatToFile(Index: TMaterialType);
    property E: double read FE write FE;
    property G: double read FG write FG;
    property GM: double read FGM write SetGM;
    property AlphaT: double read FAlphaT write FAlphaT;
    property Fyk: double read FFyk write FFyk;
    property Name: string read FName write FName;
    property OnMaterialItemChanged: TMaterialItemChanged
      read FOnMaterialItemChanged write FOnMaterialItemChanged;
  end;

  TMaterial = record
  private
    FItems: array [TMaterialType] of TMaterialItem;
    function GetItem(Index: TMaterialType): TMaterialItem;
    function GetItemNmm2(Index: TMaterialType): TMaterialItem;
    procedure Clear;
    procedure MaterialItemChanged;
    function GetArt(Index: TMaterialType): string;
  public
    procedure Init(Querdehnzahl: double = 0);
    function IndexOf(const Value: string): TMaterialType;
    property Art[Index: TMaterialType]: string read GetArt;
    property Items[Index: TMaterialType]: TMaterialItem read GetItem; default; // kN/m2;
    property ItemsNmm2[Index: TMaterialType]: TMaterialItem read GetItemNmm2;
  end;


procedure TMaterial.Clear;
var
  I: TMaterialType;
begin
  for I := mt_None to mt_BSt550B do
  begin
    FItems[I].Clear;
    FItems[I].OnMaterialItemChanged := MaterialItemChanged;
  end;
end; // ***
  Mit Zitat antworten Zitat