AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Reihenfolge der initialization

Ein Thema von hoika · begonnen am 17. Aug 2017 · letzter Beitrag vom 18. Aug 2017
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#1

Reihenfolge der initialization

  Alt 17. Aug 2017, 20:25
Hallo,
hier ist ein interessantes Thema
https://entwickler-forum.de/archive/...p/t-21926.html

Nun stecke ich selber in der Problematik.

Gibt es wirklich keine Möglichkeit,
mein Unit1-initialization als allererstes durchlaufen zu lassen?
Heiko

Geändert von hoika (17. Aug 2017 um 20:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

AW: Reihenfolge der initialization

  Alt 17. Aug 2017, 20:54
Deine Unit als Erstes in die DPR und du darfst keine anderen Units referenzieren (außer System und SysInit)
und möglichst nicht mit Laufzeitpackages arbeiten.

Alles Andere kannst du vergessen, ohne gefährlich in der EXE rumpfuschen zu wollen, bevor deine Anwendung gestartet wird.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (17. Aug 2017 um 20:58 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Reihenfolge der initialization

  Alt 17. Aug 2017, 20:57
Halo,
danke für die Antwort.

Ich habe jetzt das initialization von Unit1 in eine Prozedur gepackt und rufe sie im
initialization von Unit2 auf.

Klappt
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: Reihenfolge der initialization

  Alt 17. Aug 2017, 21:39
Im Prinzip ist es ganz einfach.

Der Compiler arbeitet ja linear, also was er zuerst im Code findet, bei der DPR angefangen, das wird auch zuerst eingebunden/ausgeführt.
Bindet deine Unit aber eine andere Unit ein (im Interface), dann wird die andere Unit vorher noch schnell compiliert/eingebunden, und deine Unit erst, wenn alles im Interface vorhanden ist.

Nur was in der Implementation eingebunden wurde, da kann es passieren, dass diese Units erst nach Deiner geladen werden.


Alles im Interface kommt immer vor der aufrufenden Unit, bzw. deine Unit kommt immer nach dem dran, was sie dort eingebunden hat.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Reihenfolge der initialization

  Alt 17. Aug 2017, 21:40
Hallo,
im Prinzip schon, aber es handelt sich um lange gewachsenen Code ...
Heiko
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Reihenfolge der initialization

  Alt 17. Aug 2017, 21:43
Dass diese Leute schon vor 16 Jahren damit Probleme hatten und Gott uns bis heute keine besseren Werkzeuge geschenkt hat sollte einem deutlich sagen: Raus aus der initialization/finalization-Sache.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Reihenfolge der initialization

  Alt 17. Aug 2017, 22:44
In alten Projekten stand auch einiges in initialization usw. drin, das haben wir nun alles ausgeräumt. Jetzt gibt es einen sauberen Startup- und Shutdown-Ablauf, in dem alles stattfindet. Auf die Weise kann auch rechtzeitig Logging usw. aktiviert werden und es gibt eine Kontrolle über den Ablauf.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#8

AW: Reihenfolge der initialization

  Alt 18. Aug 2017, 10:04
es handelt sich um lange gewachsenen Code ...
Irgendwann kommt eben die Zeit, wo der Code halt erwachsen werden muss.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 16:27 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