| |
|
|
 |
Autor |
Nachricht |
 |
| |
| BackOrifice |
#1| Verfasst am: 06.01.2009, 01:35 Titel: Form-Konstruktor überschrieben; wie werden Komp. erzeugt? |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 75 angemeldet: 06.06.2005 RAD-Studio 2007 Architect

|
Sprache: Delphi (Win32) Hi =)
Ich hoffe, so spät abends ist noch einer wach.
Ich habe eine Formularklasse, bei der ich den Konstruktor überschrieben habe um dem Formular 1, 2 Objekte mitzugeben.
| Delphi-Quellcode: | markieren | constructor Tfrm_Settings.Create(Settings: TSettings; Semesters: TSemesters);
begin
_Settings := Settings;
_Semesters := Semesters;
end; |
|
Das Formular wird _NICHT_ automatisch erzeugt, sondern nur dann, wenn es gebraucht wird.
| Delphi-Quellcode: | markieren | var FSemesterSettings : Tfrm_NewSemester;
begin
FSemesterSettings := Tfrm_NewSemester.Create(Semesters);
FSemesterSettings.Show;
FSemesterSettings.Release; |
|
Problem jetzt: Da ich den Konstruktor überschrieben hab, werden die Komponenten auf dem Formular nicht mehr automatisch erzeugt; Nach dem Konstruktoraufruf sind alle Objekte außer _Settings und _Semesters nil. -> Logischweiße schlägt dabei FSemesterSettings.Show fehl, da von der Adresse 0 gelesen wird.
2 Lösungen fallen mir ein:
1) Ich kümmer mich jetzt im Konstruktor selbst um alle Komponenten, dass sie erzeugt werden
2) Ich benutze irgendein geiles Schlüsselwort, welches mir die Objekte erstellt - nur kenn ich das nicht =(
Hilfe! |
|
 |
|
|
|
| |
| HalloDu |
#2| Verfasst am: 06.01.2009, 02:32 Titel: Re: Form-Konstruktor überschrieben; wie werden Komp. erzeugt |
 |
 |
 |
|
Mitglied Alter: 18 Status: offline Beiträge: 264 angemeldet: 24.04.2006 Wohnort: Oelde Delphi 2009 Professional

|
Wenn du einen Konstruktor überschreibst musst du mit inherited den geerbten Konstruktor, gleiches gilt für Destruktor, aufrufen.
Delphi-Treff |
Zuletzt bearbeitet von HalloDu am 06.01.2009, 02:32, insgesamt 1-mal bearbeitet. |
 |
|
|
|
| |
| lincore |
#3| Verfasst am: 06.01.2009, 02:34 Titel: Re: Form-Konstruktor überschrieben; wie werden Komp. erzeugt |
 |
 |
 |
|
Mitglied Alter: 28 Status: offline Beiträge: 26 angemeldet: 27.12.2008 Wohnort: Bad Segeberg Delphi 2009 Professional

|
Nacht,
lincore |
 Wenn Stallman eines Tages mit Zornesröte im Gesicht und blutverschmierter Klinge vor deiner Tür steht, behaupte nicht ich hätte dich nicht gewarnt. |
 |
|
|
|
| |
| BackOrifice |
#4| Verfasst am: 06.01.2009, 05:23 Titel: Re: Form-Konstruktor überschrieben; wie werden Komp. erzeugt |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 75 angemeldet: 06.06.2005 RAD-Studio 2007 Architect

|
Auf das inherited bin ich auch gekommen - aber nicht auf das Create(nil);
Danke, Jungs! |
|
 |
|
|
|
| |
| mkinzler |
#5| Verfasst am: 06.01.2009, 09:48 Titel: Re: Form-Konstruktor überschrieben; wie werden Komp. erzeugt |
 |
 |
 |
|
Moderator Beiträge: 27.696 angemeldet: 09.12.2005 Wohnort: Heilbronn Delphi 2010 Professional

|
Statt Nil wäre aber ein Owner auch nicht verkehrt |
|
 |
|
|
|
 |
|
 |
| |
|
|
| |
 
|
|