Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Unverständliche Exception (https://www.delphipraxis.net/176836-unverstaendliche-exception.html)

idefix2 30. Sep 2013 00:55

Unverständliche Exception
 
Hallo, ich habe längere Zeit nichts mit Delphi gemacht, und stehe jetzt völlig auf dem Schlauch, vermutlich übersehe ich etwas ganz triviales:

Ich habe eine Klasse definiert
Delphi-Quellcode:
TDataStream = class
  private
  ...
  currentday, lastday: TDateTime;
  ...
  public

  constructor create(const typ: Datastreamtypes; const symbol: string;
                     const von,bis: TDateTime);

  destructor destroy;

end;
Hier der Konstruktor:

Delphi-Quellcode:
constructor TdataStream.create(const typ: Datastreamtypes; const symbol: string;
                               const von,bis: TDateTime);
var s: string;
begin
inherited create; (* Brauche ich das überhaupt bei einer von TObject abgeleiteten Klasse? *)
CurrentDay:=von;
LastDay:=bis;
...
und eine Vartiable
Delphi-Quellcode:
var DS: TDataStream;
Beim Aufruf von DS.Create(...)
bekomme ich bei der Zuweisung
Delphi-Quellcode:
CurrentDay:=von;
, also beim allerersten Zugriff auf die Klasseninstanz, eine Exception vom Typ EACCESSVIOLATION. Was kann da der fehler sein (Die Variable "von" enthält einen gültigen TDateTime-Wert, das habe ich überprüft, obwohl es für diese Exception ziemlich sicher egal ist).

Perlsau 30. Sep 2013 01:17

AW: Unverständliche Exception
 
Access Violation weist darauf hin, daß das Objekt, auf das du zuzugreifen versuchst, zu diesem Zeitpunkt (noch) nicht existiert. Offenbar wird das Projekt erst erzeugt, nachdem die Create-Procedure vollständig durchlaufen wurde.

Das bedeutet: Du mußt dir eine extra public Procedure schreiben, in welcher du die beiden privaten Variablen setzt.

Luckie 30. Sep 2013 01:24

AW: Unverständliche Exception
 
Ich hatte noch nie Probleme Feldern Werte zu zuweisen die aus Parametern den Konstruktors kommen.

silver-moon-2000 30. Sep 2013 04:11

AW: Unverständliche Exception
 
Mal ganz blöd gefragt: Wie erzeugst Du Dein DataStream Object?
Du schriebst was von
Delphi-Quellcode:
DS.Create
In Delphi werden Objekte so erzeugt:
Delphi-Quellcode:
DS := DataStream.Create(...)

idefix2 30. Sep 2013 07:16

AW: Unverständliche Exception
 
@ silver-moon-2000

Danke! Ich war mir sicher, dass es ein ganz idiotischer Fehler sein muss, aber es war gestern (heute) auch schon spät :)
Wenn man eine Zeit lang in x verschiedenen Sprachen programmiert, bringt man die syntaktischen Konstrukte leicht durcheinander.
Ich habe gestern eine gute halbe Stunde versucht, mich an den Fehler heranzutasten, aber da habe ich einfach nur drübergelesen. Wie schön, dass du "blöd gefragt" hast. :-D

silver-moon-2000 30. Sep 2013 08:19

AW: Unverständliche Exception
 
Zitat:

Zitat von idefix2 (Beitrag 1230305)
Wenn man eine Zeit lang in x verschiedenen Sprachen programmiert, bringt man die syntaktischen Konstrukte leicht durcheinander.

Den gleichen Fehler hab ich auch mehrfach gemacht, daher hab' ich gefragt...

Zitat:

Zitat von idefix2 (Beitrag 1230305)
Wie schön, dass du "blöd gefragt" hast. :-D

Blöd zu fragen fällt mir leicht, da muss ich mich eigentlich gar nicht verstellen 8-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 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