AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Self ist im Constructor nil

Ein Thema von phri · begonnen am 6. Apr 2013 · letzter Beitrag vom 6. Apr 2013
Antwort Antwort
phri

Registriert seit: 6. Apr 2013
3 Beiträge
 
#1

Self ist im Constructor nil

  Alt 6. Apr 2013, 16:27
Delphi-Version: 5
Wie im Titel beschrieben, rufe ich einen constructor auf und schon in dessen erster Zeile ist self=nil , was einen Zugriffsfehler zur Folge hat.

Delphi-Quellcode:
interface
type
  tzustand=(l,g,t);

  tknoten=class
    z:tzustand;
    farbe:integer;
    liste:tliste;
    constructor create;
    destructor destroy;
    procedure reparieren;
  end;

implementation

  constructor tknoten.create;
  Begin
    self.z:=l; //Hier erhalte ich immer eine EAccesViolation
    farbe:=0;
    liste:=nil;
  end;
Ich kann den Fehler einfach nicht finden. Daher wäre es nett, wenn ihr mir helfen könntet.

Geändert von TBx ( 7. Apr 2013 um 08:18 Uhr) Grund: Code formatiert
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Self ist im Constructor nil

  Alt 6. Apr 2013, 16:30
Wie rufst du denn den Konstruktor auf?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Self ist im Constructor nil

  Alt 6. Apr 2013, 16:30
Delphi-Quellcode:
constructor tknoten.create;
Begin
    inherited;
    self.z:=l; //Hier erhalte ich immer eine EAccesViolation
    farbe:=0;
    liste:=nil;
end;
Markus Kinzler

Geändert von TBx ( 7. Apr 2013 um 08:13 Uhr) Grund: überzählige Delphi-Tags gemopst
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Self ist im Constructor nil

  Alt 6. Apr 2013, 16:32
Das liegt daran, wie du später den Konstruktor aufrufst:
Delphi-Quellcode:
var
  knoten : tknoten;
begin
  knoten.Create; // FALSCH!

  knoten := tknoten.Create; // Richtig
  Mit Zitat antworten Zitat
phri

Registriert seit: 6. Apr 2013
3 Beiträge
 
#5

AW: Self ist im Constructor nil

  Alt 6. Apr 2013, 16:39
Delphi-Quellcode:
var k:tknoten

  if k=nil then k:=k.create
Ich bin über die Suche jeden Constructor Aufruf durchgeganen, und er ist immer wie oben.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Self ist im Constructor nil

  Alt 6. Apr 2013, 16:41
if not Assigned( k) then k := TKnoten.Create;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Self ist im Constructor nil

  Alt 6. Apr 2013, 16:52
Delphi-Quellcode:
var k:tknoten

  if k=nil then k:=k.create
Ich bin über die Suche jeden Constructor Aufruf durchgeganen, und er ist immer wie oben.
Dann ist er immer falsch! Markus zeigt wie es geht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
phri

Registriert seit: 6. Apr 2013
3 Beiträge
 
#8

AW: Self ist im Constructor nil

  Alt 6. Apr 2013, 16:54
Danke , an den anderen Stellen war er tknoten.create.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:50 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