Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Klasse in Varibale speichern? (https://www.delphipraxis.net/150710-klasse-varibale-speichern.html)

JustinBeer 24. Apr 2010 17:36


Klasse in Varibale speichern?
 
Hallo Leute, bin neu hier im Forum :)

ich arbeite seit kurzem mit Delphi und beschäftige mich gerade mit Klassen.
Mein derzeitiges Problem ist die "Speicherung" einer Klasse in einer Variabel ca. so:

Delphi-Quellcode:
type
  Klasse1 = Class
  private
    blabla
  public
    blalba
   
    constructor Create;
end;

type
  Klasse2 = Class
  private
    FVariable: Klasse1;
  public
    property Variable: Klasse1 read FVariable;

    constructor Create(AKlasse1: Klasse1);
end;


constructor Klasse2.Create(AKlasse1: Klasse1);
Begin
  self.FVariable := AKlasse1;
End;
So und im dem Create Ereignis bekomm ich ne Zugrifsverletztung. Kann das sein, dass ich die FVariable über
Delphi-Quellcode:
FVariable := Klasse1.Create
FVariable := AKlasse1;
erst erstellen muss? Aber das kann es doch auch nicht sein, ich möchte nachher bei klasse1 5 Eigenschaften bei der Erstellung mitgeben und wenn ich das bei klasse2 dann vortäuschen müsste nur damit ich das was ich erstelle danach wieder verwerfe, weil ich ja im constructor die FVariable dann wieder mit der übergebenen überschreibe?

Oder geht es doch so wie ichs gern hätte und ich hab nur vergessen was einzubauen o.ä.?

Danke :)

rollstuhlfahrer 24. Apr 2010 17:42

Re: Klasse in Varibale speichern?
 
Ich hab mir mal den Code angeschaut und in der Theorie sollte dieser auch funktionieren. Dein 2. Codeschnipsel produziert nur ein Speicherleck, welches der Compiler evtl. sogar wegoptimiert. Lösche mal alles was in dem Projektverzeichnis auf .dcu endet. Somit sagst du dem Compiler von Delphi, dass er doch bitte keinen Schrott produzieren soll.

Bernhard

JustinBeer 24. Apr 2010 17:48

Re: Klasse in Varibale speichern?
 
lol vielen Dank, hat funktioniert xD

Mit dem "das was ich erstelle danach wieder verwerfe" war dein Speicherleck gemeint.
nochmal danke, weiß zwar nicht wie Sowas passieren kann, aber was solls, hauptsache es läuft :)

himitsu 24. Apr 2010 17:48

Re: Klasse in Varibale speichern?
 
Im Constructor der Klasse2 kann es eigentlich nicht zu einer Exception kommen.
Wie rufst du diesen denn auf?

Und nein, wegoptimieren würde er dieses Speicherleck nicht.

[edit]
ohh, schon gelöst :)

PS: Statt dem Löschen könnte man auch erstmal Shift+F9 versuchen. Dieses sollte auch alles neu kompilieren.


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