AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Laufzeitpackages

Ein Thema von Codewalker · begonnen am 11. Dez 2011 · letzter Beitrag vom 12. Dez 2011
Antwort Antwort
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#1

Problem mit Laufzeitpackages

  Alt 11. Dez 2011, 20:50
Delphi-Version: XE
Folgendes Problem: Ich habe eine Anwendung, die insgesamt 5 Laufzeitpackages nutzt. Dabei enthält ein Package eine Unit mit einer zentralen ObjectList. Im Moment erzeuge ich die Liste im initialization-Abschnitt. Das Problem ist, dass die mehrfach quer über alle Packages verwendet wird und der initialization-abschnitt scheinbar mehrfach durchlaufen wird. .Deswegen scheint die Liste mehrfacz erzeugt zu werden. Wie kann man das denn vernünftig lösen?
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Problem mit Laufzeitpackages

  Alt 11. Dez 2011, 21:18
Hast Du dich schon mal mit dem Singleton-Pattern auseinander gesetzt?
Lars
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Problem mit Laufzeitpackages

  Alt 11. Dez 2011, 21:51
Sicher, dass alle deine Projekte auch mit Runtime Packages kompiliert wurden? Wenn das der Fall ist, kann die initialization Section nur einmal durchlaufen werden und zwar wenn das diese Unit enthaltende Package geladen wird.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Problem mit Laufzeitpackages

  Alt 12. Dez 2011, 07:23
Moin Stevie.

Alle Pakete sind Laufzeit only mit Ausnahme von einem, welches Komponenten enthält. Das ist auf "Entwurf & Laufzeit" (ich hoffe, dass ist kein Problem - kann ich erst heute abend testen).
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Problem mit Laufzeitpackages

  Alt 12. Dez 2011, 10:35
Die Frage war eher, ob deine Anwendung gegen die Runtime Packages kompiliert ist und die Packages letztlich das Package mit dieser besagten Unit im requires haben. Sonst wird sie mehrfach einkompiliert und dann ist klar, dass der initialization Block mehrfach ausgeführt wird.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Problem mit Laufzeitpackages

  Alt 12. Dez 2011, 10:38
Okay, da werde ich etwas tiefer wühlen müssen. Ich prüfe mal alle requires-Einträge. Die Anwendung selber lädt nur das zentrale Package (welches auch die Liste enthält). Alle anderen Packages werden dynamisch zur Laufzeit mittels LoadPackage geladen.
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Problem mit Laufzeitpackages

  Alt 12. Dez 2011, 16:51
Also, wie versprochen, hier mal das Wühlergebnis:
  • LibForms, Entwurf & Laufzeit (enthält Basisformklasse + ObjectList), erfordert keines der anderen Packages
  • LibPackages, Laufzeit, enthält Routinen für dynamisches Laden von Packages, erfordert auch kein anderes
  • LibLogging, Laufzeit, enthält ein von der Basisformklasse abgeleitetes Form und nutzt die ObjectList, erfordert LibForms.dcp
Das Hauptprogramm hat in den Projektoptionen folgende Laufzeitpackages angegeben:
  1. LibForms
  2. LibPackages
In der Projektdatei wird nach dem Application.Initialize noch LibLogging.bpl über LoadPackage nachgeladen.

Wenn ich durchsteppe, werden einige initialization-Abschnitte mehrfach durchlaufen und die Liste existiert zu bestimmten Zeitpunkten einfach nicht.
  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 18:45 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