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
Erwin Pälzig

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

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

  Alt 5. Mär 2015, 11: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.336 Beiträge
 
Delphi 12 Athens
 
#2

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

  Alt 5. Mär 2015, 11: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?
Ein Therapeut entspricht 1024 Gigapeut.
  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:39
Zitat:
SetLength(TotalEvap,0);
Strg+Linksklick auf "TotalEvap" oder die Maus drüber halten und etwas warten ... Was sagt dir die IDE denn dabei?
Hallo, vielen Dank auch für deinen Hinweis!

Bei betätigung springt der Mauszeiger auf die Procedurdefinition im Quelltext

Sonst hier die Aussage bei Bewegung des Mauszeigers über SetLength.
Angehängte Grafiken
Dateityp: png System.SetLength.png (27,6 KB, 17x aufgerufen)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

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

  Alt 5. Mär 2015, 11:12
Ich glaube Detlef ist auf der richtigen Fährte
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#5

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

  Alt 5. Mär 2015, 11:43
Die Fehlermeldung klingt doch eher so, als wären die Pfadeinstellungen vergurkt?
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

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

  Alt 5. Mär 2015, 11:51
Zitat:
//procedure ClearValues(Sender: TObject; var TotalEvap: array of real); -> wird im eigentlichen Code verwendet
Das ist der entscheidende Hinweis! In diesem Fall ist TotalEvap nämlich als var-Parameter definiert und nicht als globale Variable. Allerdings wird der Typ generisch angegeben und nicht als deklarierter Typ und dann kommt der Compiler nicht mehr klar. So sollte es gehen (und so sollte man es auch machen):

Delphi-Quellcode:
program Project10;

{$APPTYPE CONSOLE}

type
  TRealArray = array of Real;

procedure ClearValues(Sender: TObject; var TotalEvap: TRealArray);
begin
  SetLength(TotalEvap,0);
  TotalEvap := nil;
end;

var
  TotalEvap: TRealArray;

begin
  ClearValues(nil, TotalEvap);
end.
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
 
#7

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

  Alt 5. Mär 2015, 12:08
Zitat:
//procedure ClearValues(Sender: TObject; var TotalEvap: array of real); -> wird im eigentlichen Code verwendet
Das ist der entscheidende Hinweis! In diesem Fall ist TotalEvap nämlich als var-Parameter definiert und nicht als globale Variable. Allerdings wird der Typ generisch angegeben und nicht als deklarierter Typ und dann kommt der Compiler nicht mehr klar. So sollte es gehen (und so sollte man es auch machen):

Delphi-Quellcode:
program Project10;

{$APPTYPE CONSOLE}

type
  TRealArray = array of Real;

procedure ClearValues(Sender: TObject; var TotalEvap: TRealArray);
begin
  SetLength(TotalEvap,0);
  TotalEvap := nil;
end;

var
  TotalEvap: TRealArray;

begin
  ClearValues(nil, TotalEvap);
end.
Vielen Dank Uwe!

Ich werde deine Hinweise berücksichtigen und melde mich zurück!
  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:01
Die Fehlermeldung klingt doch eher so, als wären die Pfadeinstellungen vergurkt?
Hallo Uli.
Ich hatte ebenfalls danach gesucht.
Hatte hierrüber auch den Fehler (ähnlichen gefunden)

http://docs.embarcadero.com/products...spart_xml.html

Hier auch der Screenshot dazu. Ich habe nach der System.dcu gesucht und sie auch in dem entsprechendem Verzeichnis:
C:\Program Files (x86)\Embarcadero\Studio\15.0\lib\win64\release gefunden.


Nur scheint es, dass im Quelltext etwas nicht passt.

Hast Du TotalEvap evtl. noch einmal deklariert (z.B. als lokale Variable oder auch Feld oder Property), ggf. mit einem anderen Typen?
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:07 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