AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt
Thema durchsuchen
Ansicht
Themen-Optionen

XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt

Ein Thema von Erwin Pälzig · begonnen am 4. Mär 2015 · letzter Beitrag vom 10. Mär 2015
Antwort Antwort
Seite 1 von 3  1 23      
Erwin Pälzig

Registriert seit: 4. Mär 2015
16 Beiträge
 
Delphi XE7 Professional
 
#1

XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt

  Alt 4. Mär 2015, 18:54
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!
Miniaturansicht angehängter Grafiken
totalevap_fehler-e2158-system-unit.png  
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt

  Alt 4. Mär 2015, 19:00
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:
var
  TotalEvap : array of real;
Ich hatte einen ähnlichen Fehler gerade in einem anderen Zusammenhang, aber da war einfach die Syntax falsch.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Erwin Pälzig

Registriert seit: 4. Mär 2015
16 Beiträge
 
Delphi XE7 Professional
 
#3

AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt

  Alt 5. Mär 2015, 11:42
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:
var
 TotalEvap : array of real;
Im Anhang der entsprechende Screenshot.

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!
Miniaturansicht angehängter Grafiken
liste-deklarierter-parameter.png  
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt

  Alt 5. Mär 2015, 11:49
Dann liegt es definitiv an etwas Anderem, denn ein einfaches Beispielprojekt funktioniert tadellos.

Delphi-Quellcode:
program Project10;

{$APPTYPE CONSOLE}

var
  TotalEvap: array of real;

begin
  SetLength(TotalEvap,0);
  TotalEvap := nil; // ist faktisch identisch mit dem vorigen Befehl
end.
Kannst du das fehlerhafte Projekt soweit schrumpfen, daß es hier hochgeladen werden kann?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt

  Alt 5. Mär 2015, 11:50
Hast Du TotalEvap evtl. noch einmal deklariert (z.B. als lokale Variable oder auch Feld oder Property), ggf. mit einem anderen Typen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Horst0815

Registriert seit: 23. Mai 2011
Ort: Görlitz
150 Beiträge
 
Delphi XE Starter
 
#6

AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt

  Alt 5. Mär 2015, 11:54
mal die Projektquellen bereinigen
sehe da keinen Fehler hab´s extra nochmal ausprobiert keine Fehler bei der Compilierung
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt

  Alt 5. Mär 2015, 11:55
Funktioniert den Uwe's Testprogramm?
Markus Kinzler
  Mit Zitat antworten Zitat
Erwin Pälzig

Registriert seit: 4. Mär 2015
16 Beiträge
 
Delphi XE7 Professional
 
#8

AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt

  Alt 5. Mär 2015, 12:02
Also vielen Dank für die soliden Vorschläge und gute Hinweise! Bereite eine gesonderte Unit vor...

Funktioniert den Uwe's Testprogramm?
jep, eine kleinere Unit mit den Hinweisen von Uwe läuft und lässt sich compilieren.
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#9

AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt

  Alt 5. Mär 2015, 12:12
Zitat:
SetLength(TotalEvap,0);
Strg+Linksklick auf "TotalEvap" oder die Maus drüber halten und etwas warten ... Was sagt dir die IDE denn dabei?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: XE 7 Error Meldung E2158 System-Unit veraltet oder beschädigt @Clr fehlt

  Alt 5. Mär 2015, 12:12
Ich glaube Detlef ist auf der richtigen Fährte
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz