![]() |
XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo alle zusammen,
ich habe ein kleines Problem mit der Compilierung eines alten Delphi Quellcodes. In einem Abschnitt des Programms sollen deklarierte Variablen (array of real) über den nil-Pointer auf Null gesetzt werden. Hier die Details: SetLength(TotalEvap,0); TotalEvap:= nil; dabei ist TotalEvap : array of real; TotalEvap ist vor dem Hauptteil im Variablen Abschnitt deklariert. Hier auch die Fehlermeldung: [dcc32 Fataler Fehler] Unit4.pas(358): E2158 System-Unit veraltet oder beschädigt: '@Clr' fehlt Sende im Anhang auch ein Screenshot. In einer anderen Unit kommt keine Fehlermeldung. Was könnte ich falsch gemacht haben oder ist der Code falsch? Fehlt eventuell ein Teil der Bibliothek? (wie in anderen Beiträgen) Entschuldigt wenn ich einige Sachen zusammen werfe, beginne aber gerade wieder mit Delphi zu arbeiten... Vielen Dank für eure Hilfe! |
AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt
Vielleicht solltest du dich erst um die darüber stehende Fehlermeldung kümmern, die auf dieselbe Zeile verweist.
Bist du sicher, daß die Deklaration wirklich so da steht?
Delphi-Quellcode:
Ich hatte einen ähnlichen Fehler gerade in einem anderen Zusammenhang, aber da war einfach die Syntax falsch.
var
TotalEvap : array of real; |
AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Uwe,
Danke für deine schnelle Antwort! Ich hatte zunächst auch dies vermutet. Habe aber diese und weitere Variablen eindeutig deklariert. Bsp.
Delphi-Quellcode:
Im Anhang der entsprechende Screenshot.
var
TotalEvap : array of real; Kann evtl. der Fehler in der Anwendung des SetLength sein? Ich hatte in verschiedenen Bsp. gelesen, dass es meistens mit einer Variable des Typs char aufgerufen wird. Danke für jeden Hinweis! :) |
AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt
Dann liegt es definitiv an etwas Anderem, denn ein einfaches Beispielprojekt funktioniert tadellos.
Delphi-Quellcode:
Kannst du das fehlerhafte Projekt soweit schrumpfen, daß es hier hochgeladen werden kann?
program Project10;
{$APPTYPE CONSOLE} var TotalEvap: array of real; begin SetLength(TotalEvap,0); TotalEvap := nil; // ist faktisch identisch mit dem vorigen Befehl end. |
AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt
Hast Du TotalEvap evtl. noch einmal deklariert (z.B. als lokale Variable oder auch Feld oder Property), ggf. mit einem anderen Typen?
|
AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt
mal die Projektquellen bereinigen
sehe da keinen Fehler hab´s extra nochmal ausprobiert keine Fehler bei der Compilierung |
AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt
Funktioniert den Uwe's Testprogramm?
|
AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt
Also vielen Dank für die soliden Vorschläge und gute Hinweise! Bereite eine gesonderte Unit vor...
Zitat:
Delphi-Quellcode:
unit Unit16;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs; type TForm16 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; var Form16: TForm16; TotalEvap: array of real; implementation {$R *.dfm} begin SetLength(TotalEvap,0); TotalEvap := nil; // ist faktisch identisch mit dem vorigen Befehl end. |
AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt
Zitat:
|
AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt
Ich glaube Detlef ist auf der richtigen Fährte
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 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-2025 by Thomas Breitkreuz