Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
Delphi 12 Athens
|
AW: Zugriffsverletzung beim erstellen eines Datamoduls
31. Jan 2022, 01:11
Es wird nur das automatisch erstellt, was in den Projektoptionen eingestellt ist,
also genauer das, was in der .DPR via Application.CreateForm erstellt wird. (deswegen werden genau diese Codezeilen von den Projektoptionen generiert)
Aber egal, du kannst nichts verwenden, was es (noch) nicht gibt, sonst knallt es nunmal.
Ob es nun autmatisch erstellt wird, oder ob du es manuell erstellst, ist irrelevant ... es muß aber vor der Verwendung erstellt worden sein.
Und das Event an OnCreate, oder Dergleichen, ruft dann das DatenModul selbst auf, wenn es erstellt wird, nicht du. (wenn du es aufrufen mußt, damit irgendwas funktioniert, dann machst du definitiv etwas falsch)
PS: Auch globale Variablen (Zeiger auf Forms/Module), sind grundsätzlich "immer" erst nach Create/OnCreate gültig.
Einzige Ausnahmen sind die globale Variablen von automatisch erstellten Forms/Datenmodule, oder wenn man selbst mit NewInstance arbeitet und dann den Constructor anschließend selbst wie eine Przedur aufruft. (genau deswegen gibt es Application.FormCreate, damit während des Erstellens von Foms/Modulen andere Forms/Module und Code auf diese Variablen/Namen referenzieren/zugreifen können)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
Geändert von himitsu (31. Jan 2022 um 07:54 Uhr)
|