Thema: Delphi D2007 und Module

Einzelnen Beitrag anzeigen

hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

D2007 und Module

  Alt 21. Mai 2008, 08:29
Hallo,

ich habe ein größeres Projekt unter D2007 modularisiert.
Dazu habe ich unter Verwendung des Hydra-Pluginsystems eine Reihe von Funktionen in dll ausgelagert.

Eine Plugin-Schnittstelle erlaubt den Aufruf einzelner Module, wobei deren Interfacebeschreibung in einem statischen Record erfolgt.
Der Aufruf ist für alle Module gleich.
Die Parameterversorgung erfolgt über eine einheitliche Kommandoschnittstelle (Kommando, Stringparameter, Integerparameter)

Delphi-Quellcode:
Beispiel:
  CreatePlugin(@AuswahlListe); // Statischer Record Titel,dll-Name,Modulname,Hilfedatei, Freigabe Toolbutton im Framework.
  InitDate(AuswahlListe,'P','',GruppenID); // Bearbeitungs ID
  InitDate(AuswahlListe,'A','',ComData.ArbPlatz); // Arbeitsplatz
Das funktioniert auch alles wie gewünscht und ist recht flott.
Das Hauptprogramm war vorher 11 MByte groß und eine einzige Exe.
Jetzt ist es noch 3,2 MByte groß, dazu kommen 1.3 MByte in 8 dll.

Wenn man von den vielen kleinen Problemen mit D2007, gerade an den Interface-Schnittstellen absieht, war die Entwicklung eigentlich praktikabel.
Unter D2007 ging das von verlorenen Parametern über sporadische Speicherschutzverletzungen bis zum blue screen beim Aufruf einer dll. (Etwa 1 mal am Tag)

Jetzt kommt aber das eigentliche Problem.
Hydra benötigt Laufzeitpackages von VCL,RTL,HydraCore.
Dazu kommen noch BPL, welche eine Klasse mit Registerclass registrieren.
Das sind bei mir eine BPL von Fastreport und eine von IBDAC.
Also recht überschaubar.

Aber jetzt kommt der Hammer.
Ich habe das Programmsystem auf einem Delphi freien Rechner installiert.
Da verlangt er dann eine BPL nach der anderen als Laufzeitbibliothek.

Insgesamt habe ich etwa 70 bpl kopieren müssen.
Da ergibt sich für das nun schlankere Programm eine Laufzeitumgebung, die im konkreten Fall, mit
41,495 MByte zuschlägt.
Ich verwende ausschließlich kommerzielle Tools. Das da auch ein bischen geschlampt wurde, erkennt man daran,
das z.B. die DesignIDE.bpl als Laufzeitmodul angefordert wird.

Gibt es ein Programm, was mir solche Abhängigkeiten von BPL auflistet?
Da Delphi beinahe willkürlich mal eine bpl mitcompiliert, müsste diese bei einem Update mit ausgeliefert werden.
(D2007 kann bei mir nach einem Neustart nicht auf verbundene Netzlaufwerke zugreifen. Diese muss ich in Delphi manuell öffnen.)
Gibt es ein Programm, was Abhängigkeiten prüft und mir ein Updateset aufbereitet?
Ich habe inzwischen allerdings auch grundsätzliche Zweifel, ob der gewählte Weg überhaupt praktikabel ist.


Für ein paar Tips dankbar.

Gruß
Peter
  Mit Zitat antworten Zitat