Einzelnen Beitrag anzeigen

FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#4

AW: An Prozedur übergebene Parameter gehen verloren.

  Alt 20. Dez 2010, 16:29
Mir persönlich ist das zu wenig Quelltext, um da etwas erkennen zu können.
Ich verwende eine Prozedur, die eine Info benötigt, von wem sie aufgerufen wurde. Daher gebe ich dieser die Informationen über AOwner: TComponent; AParent: TWinControl; mit, bzw. reiche die durch. AOwner scheint auch Informationen zu enthalten; AParent scheint aber nil zu sein.
Im MainForm wird ein Konstruktor einer Klasse aufgerufen. Diesem Konstruktor gebe ich die Infos AOwner: TComponent; AParent: TWinControl; des Hauptformulars mit.
Innerhalb des Konstruktors der aufgerufenen Klasse in der 2. Unit wird wiederum der eigentlich Konstruktor der Klasse aufgerufen der die Info über AOwner: TComponent; AParent: TWinControl; benötigt. Ich reiche diese also nur durch. In der 3. Unit meldet der Compiler dann an der Stelle Parent := AParent; die Fehlermeldung: "Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000."

In der Haupt-Unit:
Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
begin

//mach was

  Daten:=TDaten.Create(MainForm, MainForm, DBTest);

//mach was

end;
In der 2. Unit:
Delphi-Quellcode:
constructor TDaten.Create(Aowner:TComponent; AParent:TWinControl; Datenbank: TdBase);
begin

//mach was

  Test1:=TSoftSPS.Create(Aowner, AParent, "irgendein Integer-Wert");

//mach was

end;
In der 3. Unit:
Delphi-Quellcode:
constructor TSoftSPS.Create(AOwner: TComponent; AParent: TWinControl; VarGroesse: Integer);
begin
  Parent := AParent; //hier tritt der Fehler auf!!!

//mach was

end;
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat