Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi AV bei frmSettings.ComponentCount (https://www.delphipraxis.net/74323-av-bei-frmsettings-componentcount.html)

Flocke 1. Aug 2006 19:23

Re: AV bei frmSettings.ComponentCount
 
Zitat:

Zitat von xZise
Ich habe nur gefragt, weil es ja diese zuweisung bei "application.CreateForm(X,Y)" gibt.

Diese Routine prüft, ob es bereits ein Hauptformular gibt (Application.MainForm). Falls nicht, wird das gerade erzeugte Formular dafür genommen. Darum werden die automatischen Formulare in der DPR-Datei alle auf diese Weise erzeugt - das erste davon wird das Hauptformular.

alias5000 1. Aug 2006 19:30

Re: AV bei frmSettings.ComponentCount
 
Zitat:

Zitat von hoika
das Application.CreateForm erzeugt die Forms schon beim Start des
Programms (FormCreate wird also für jedes Form schon erzeugt).

Das stimmt so nicht ganz.
Delphi-Quellcode:
Application.CreateForm(...)
kann jederzeit verwendet werden und stellt normalerweise neben
Delphi-Quellcode:
MeineForm := TMeinForm.Create(...)
die einzigste vernünftige Weise dar, eine Form auf eine normale Weise zu erstellen (d.h. auch füllen der Variable MeineForm, damit man über die den Zugriff drauf hat). Beide Befehle können aber jederzeit ausgeführt werden!

CalganX 1. Aug 2006 19:45

Re: AV bei frmSettings.ComponentCount
 
Hi,
der Routine stammt ja aus der Unit mit dem frmSettings-Formular. D.h. er braucht das Formular nicht erzeugen. :zwinker:

Das Problem ist vielmehr, dass du, xZise, im OnCreate auf die Komponenten zugreifen willst. Das kann schonmal nicht funktionieren, da ja beim Erzeugen des Formulars die ganzen Komponenten, die auf dem Formular liegen, noch gar nicht erzeugt sind.
Lager das, was du jetzt im OnCreate stehen hast, in's OnShow aus und dann sollte es funktionieren.

Chris

alias5000 1. Aug 2006 19:53

Re: AV bei frmSettings.ComponentCount
 
Zitat:

Zitat von Chakotay1308
Das Problem ist vielmehr, dass du, xZise, im OnCreate auf die Komponenten zugreifen willst. Das kann schonmal nicht funktionieren, da ja beim Erzeugen des Formulars die ganzen Komponenten, die auf dem Formular liegen, noch gar nicht erzeugt sind.
Lager das, was du jetzt im OnCreate stehen hast, in's OnShow aus und dann sollte es funktionieren.

Tut mir Leid, nimms net persönlich, aber da muss ich widersprechen. Im OnCreate Ereignis sind bereits alle Komponenten der eigenen Form erstellt, bloß noch nicht angezeigt.

xZise 1. Aug 2006 20:23

Re: AV bei frmSettings.ComponentCount
 
Jap alias:

Alle Ereignisse in OI (OnCreate / OnShow/ OnChange/ OnMouseDown etc.) sind immer die letzten in der Schlange. D.h. davor wird alles andere nötige (createn, zeichen/anzeigen, ändern, kA ^^ etc.) ausgeführt... Du bist sozusagen letzter :D

Wenn ich schon was vor dem create machen will dann muss ich das so machen:
Delphi-Quellcode:
contructor TfrmSettings.Create(AOwner : TComponent);
begin
  {do stuff}
  inherited Create(AOwner) {*}
end;
{*} Es geht zwar auch ohne, also nur inherited, aber manchaml auch wieder nicht (*gg*)

Khabarakh 1. Aug 2006 21:16

Re: AV bei frmSettings.ComponentCount
 
Zitat:

Zitat von xZise
{*} Es geht zwar auch ohne, also nur inherited, aber manchaml auch wieder nicht (*gg*)

"Manchmal" könnte man auch durch "nur bei geerbten Methoden/Kon-/Destruktoren mit gleicher Signatur" ersetzen ;) .


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 Uhr.
Seite 2 von 2     12   

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