![]() |
Interner Fehler: C1264
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; // *** |
AW: Interner Fehler: C1264
Und wieso keine Klasse?
|
AW: Interner Fehler: C1264
Zitat:
|
AW: Interner Fehler: C1264
Dieses end; ***
|
AW: Interner Fehler: C1264
Zitat:
oder vielleicht gibt es schon ein Update (sind denn alle Eingespiel, bzw. geht es, wenn du ein Update weglässt?) oder ein Hotfix dafür. Denn da es sich hier um einen "Fehler" im Compiler handelt, kannst du da garnichts machen, außer den Code umzubauen. Manchmal reicht es aber schon aus, wenn man in dem Code davor eine Variable/Konstante/Type umbenennt, ein Leerzeichen/Leerzeile in den Code reinmacht, die Reihenvolge der Funktionen, bzw. deren Deklarationen verändert, damit der Compiler die fehlerhafte Stelle (in seinem eigenen Programmcode) nicht trifft und es urplötzlich wieder funktioniert. |
AW: Interner Fehler: C1264
OK. Dann lass ich das Event doch lieber weg und übergeb' ggf. die ganze Liste statt nur eines Items.
|
AW: Interner Fehler: C1264
Du kannst statt record object nehmen:
Delphi-Quellcode:
Dann müsste das mit dem Event gehen.
TMaterialItem = object
... |
AW: Interner Fehler: C1264
Das könnte imho diesem Fehler entsprechen:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz