Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Kann man umfangreiche Projekte in mehrere kleine aufteilen? (https://www.delphipraxis.net/86779-kann-man-umfangreiche-projekte-mehrere-kleine-aufteilen.html)

AndersBk 19. Feb 2007 16:49


Kann man umfangreiche Projekte in mehrere kleine aufteilen?
 
Hi!

Ich arbeite gerade an einem Projekt, das viel umfangreicher wird, als ich ursprünglich dachte. Es besteht derzeit aus pi*Daumen 20 Units und nicht viel weniger Formularen. Das erzeugt eine riesige Exe-Datei, und die Geschwindigkeit des Programms läßt auch manchmal zu wünschen übrig.
Rein logisch könnte man das Ganze in zwei verschiedene Projekte aufteilen. Diese müßten aber gemeinsame Daten und Hilfsunits benutzen, und es muß auch möglich sein, von dem einen Projekt aus das andere aufzurufen und ihm Parameter zu übergeben.
Ist so etwas möglich?
Ist das der Sinn und Zweck von Projektgruppen?

Ich bin gespannt auf Eure Tipps. :-D

Bis bald: Birk

TBx 19. Feb 2007 16:57

Re: Kann man umfangreiche Projekte in mehrere kleine aufteil
 
Zuerst mal: Herzlich willkommen!

Zu Deinen Fragen:
  • Ja, es ist sowohl möglich, dass Projekte sich gegenseitig mit Parametern aufrufen (man kann ja über shellexecute beliebige Programme aufrufen)
  • Ja, es ist möglich, von mehreren Projekten aus Units gemeinsam zu nutzen, diese wereden dann in die jeweiligen Exen mit einkompiliert. Ein weiterer Weg wäre, Laufzeitpackages zu verwenden, dann bestünde der Code im System nur einmal
  • Dies ist sicherlich ein Sinn von Projektgruppen. Projektgruppen werden verwendet, um zusammengehörige Projekte zusammenzufassen. Ein gutes Beispiel hierfür sind Packagesammlungen, diese werden oft in Projektgruppen zusammengefasst, da man dadurch ein Erzeugen und Insatllieren in vorghegebener Reihenfolge automatisieren kann.

Hoffe, das hat ein wenig Licht ins Dunkel gebracht

Gruß

Alexander 19. Feb 2007 17:02

Re: Kann man umfangreiche Projekte in mehrere kleine aufteil
 
Alternativ könntest du auch das Programm in mehrere DLL's aufteilen. Aber 20 Units in einem Projekt würde ich jetzt nicht unbedingt als richtig umfangreich beschreiben.
Das ist eigentlich kein Problem. Zumindest aber wird diese Projektgröße nicht unbedingt an der Performance ziehen.
Gut, so pauschal kann man es eigentlich nicht sagen. Kommt natürlich auch auf den Umfang der einzelnen Units an.

Meine Projekte, auch mit teilw. über 30 Units, sind nicht unbedingt langsam (zumindest nicht wegen der Dateigröße).

Bernhard Geyer 19. Feb 2007 17:11

Re: Kann man umfangreiche Projekte in mehrere kleine aufteil
 
20 Units/Formular würde ich eher als kleines Projekt bezeichnen. Bevor du jetzt das Projekt zerflettern willst sollte man die Performancebremsen identifizieren:

- Werden schön beim Programmstart alle Formulare automatisch erzeugt?
- Wie groß ist "riesig"?
- Wo spürst du die Langsamkeit
- Schon mal FastMM eingebaut?

Wenn du ein paar € ausgeben kannst schau dir AQTime an. Dort findet man sehr schnell die Performancebremsen von zu häufige aktualisierung der GUI bis zu unpassenden Datenstrukturen (wie z.B. TStringlist für Einsortieren und suchen mit vielen Datensätzen).
Performanceverbesserungen bis 1000% und mehr sind möglich bei ungünstigen CPU-Zyklenfresser-Code.

Pfoto 19. Feb 2007 17:30

Re: Kann man umfangreiche Projekte in mehrere kleine aufteil
 
Hallo AndersBK!

ich hatte auch einen effizienten Wege gesucht, möglichst viele Teile
meines Programms auszulagern.
Dabei ging es mir weniger um die Dateigröße, als um eine Unabhängigkeit
der einzelnen Module / Fenster zu erhalten (sie sind schnell und
beliebig austausch- und erweiterbar).

Viele Fenster sind bei mir in BPLs ausgelagert, die zur Laufzeit
in das Programm eingelinkt werden.

Die Grundlagen für ein Plug-In System habe ich aus Sakuras Tutorial erfahren,
dass das Einklinken von DLLs zum Thema hat. Eine Erweiterung / Umwandlung für
BPLs ist aber nach Verstehen des Grundprinzips nicht mehr schwer.

Eine weitere Möglichkeit, um mehrfach verwendete Element-Gruppen
wiederverwenden zu können, sind Frames. Du kannst dort deine Komponenten
und Funktionalitäten anlegen und später in mehrere Formulare deiner
Anwendung einbetten. Wenn du Änderungen am Code der Formulare vornimmst,
profitieren so automatisch alle Fenster davon, die das Frame benutzen.



Gruß
Pfoto


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 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