AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Form-Konstruktor überschrieben; wie werden Komp. erzeugt?
Thema durchsuchen
Ansicht
Themen-Optionen

Form-Konstruktor überschrieben; wie werden Komp. erzeugt?

Ein Thema von BackOrifice · begonnen am 6. Jan 2009 · letzter Beitrag vom 6. Jan 2009
Antwort Antwort
Benutzerbild von BackOrifice
BackOrifice

Registriert seit: 6. Jun 2005
74 Beiträge
 
Delphi 2007 Architect
 
#1

Form-Konstruktor überschrieben; wie werden Komp. erzeugt?

  Alt 6. Jan 2009, 01:35
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:
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:
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!
Henning
  Mit Zitat antworten Zitat
HalloDu

Registriert seit: 24. Apr 2006
Ort: Oelde
267 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Form-Konstruktor überschrieben; wie werden Komp. erzeugt

  Alt 6. Jan 2009, 02:32
Wenn du einen Konstruktor überschreibst musst du mit inherited den geerbten Konstruktor, gleiches gilt für Destruktor, aufrufen.
Delphi-Treff
Frederic H.
  Mit Zitat antworten Zitat
Benutzerbild von lincore
lincore

Registriert seit: 27. Dez 2008
Ort: Bad Segeberg
26 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Form-Konstruktor überschrieben; wie werden Komp. erzeugt

  Alt 6. Jan 2009, 02:34
Delphi-Quellcode:
constructor create(...);
begin
  inherited {create(...), falls Parameter abweichen};
  {...}
end;
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.
  Mit Zitat antworten Zitat
Benutzerbild von BackOrifice
BackOrifice

Registriert seit: 6. Jun 2005
74 Beiträge
 
Delphi 2007 Architect
 
#4

Re: Form-Konstruktor überschrieben; wie werden Komp. erzeugt

  Alt 6. Jan 2009, 05:23
Auf das inherited bin ich auch gekommen - aber nicht auf das Create(nil);


Danke, Jungs!
Henning
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Form-Konstruktor überschrieben; wie werden Komp. erzeugt

  Alt 6. Jan 2009, 09:48
Statt Nil wäre aber ein Owner auch nicht verkehrt
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:56 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