![]() |
Sinn von DLL-Formularen
Hallo,
wozu kann ich Formulare in DLLs packen? Wo ist da der Nutzen? Kann es sein, dass es vielleicht für die leichte Einbindung von Plug-Ins relativ bequem ist? Wäre nett, wenn ihr mir mal ein paar Verwendungsbeispiele geben könntet. Danke |
Re: Sinn von DLL-Formularen
Da hast du ja einen möglichen sinn schon gefunden, aber es dient auch dazu anwendung zu modularisieren, beispielsweise.
|
Re: Sinn von DLL-Formularen
In wie fern? Module sind doch Plug-Ins, oder?
|
Re: Sinn von DLL-Formularen
Hallo,
wenn Du Formulare auslagern möchtest sind Packages besser geeignet. |
Re: Sinn von DLL-Formularen
Meine Erfahrung zu Forms in dlls ist die, dass ich auch nur einen Sinn darin sehe, sie als modale Oberflächen für Plugins zu verwenden.
Ich habe nämlich auch mal nach einer Möglichkeit gesucht, MDI-Formen auszulagern und bin dabei ganz schnell an die Grenzen von "Forms in dlls" gestoßen. Das Problem ist nämlich, dass diese dlls nicht unter dem Application-Object der Hauptanwendung laufen und es bei nicht-modalen dll-Forms dann erhebliche Probleme gibt. Z.B. kann man nicht mehr "Tabben" - verläßt man einmal die dll-Form kommt man nicht mehr per Tab auf diese zurück. Da sind Packages die bessere Lösung. Praktische Anwendung von dll-Forms, wie schon oben gesagt, als UI für PlugIns. Die dll erhält ein Eingangsobjekt (z.B. Grafik), bearbeitet dann das Objekt und stellt es der Hauptanwendung wieder über die Schnittstelle zur Verfügung. Gruß Igotcha |
Re: Sinn von DLL-Formularen
Naja, bevor ich mich entschließe, sowas zu machen, muss ich erstmal wissen, wofür das gut ist, wie es zu handeln ist und welche anderen Möglichkeiten es gibt ;-)
|
Re: Sinn von DLL-Formularen
Es gibt zwei Formen von DLL's:
1.) die normalen DLLs die somit die kompletten Sourcen der VCL jedesmal einlinken, als Plugins bekannt 2.) die Packages *.BPL und darauf aufbauen DLLs die komplett mit Packages kompiliert werden und sozusagen nur den Code + Resourcen der darin enthaltenen Forms einlinken. Der Unterschied ist schnell erklärt an Hand eines Beispieles: Eine Anwednung mit 30 Formularen, Druckmodulen, Datenbankzugriffen etc. pp. als Single EXE schätzungsweise 4-8 Mb groß. als Single EXE und jedes Foum inr eigener DLL ca. 2Mb + 30 * 1Mb jenachdem was die Forumlare so benötigen. Im WorstCase also maximal 2Mb + 30 * 4Mb = 122Mb. Nun als Packages: Exe ca. 40-80 Kb. Packages für VCL, Reporte und Datenbank ca. 5-7 Mb groß. 1 Form in DLL mit Packages ca. 100Kb groß. Macht 80Kb + 5-7Mb + 30 * 100Kb = 9-11Mb insgesamt. Es gibt also einen klaren BreakEven ab dem sich ein packagesbasiertes modulares System in jedem Falle lohnt gegenüber einer single EXE. Nicht nur in der Größe der Binaries sondern gerade auch im Support oder Entwicklung in Teams. Pure DLL's ohne Packages lohnen sich im Grunde niemals, das ist alles nur Getrickse und bringt immer wieder nur Ärger ein. Auch wenn jetzt einige hier einen Aufschrei des Entsetzens loslassen ;) Packages und DLL/EXE mit Packages gelinkt sind die einzigste Alternative um auch OOP konform modulübergreifend auf Klassen/globale Variablen etc. zugreifen zu können. Die "Endstelle" in diesem Konzept ist die nachladbare DLL die als alleinige Vollzugriff auf die in ihr enthaltenen Klassen und Formulare hat. Sogesehen eine zusätzliche Sichtbarkeitssufe. Alles was in Packages enthalten ist kann nun durch die EXE und diese DLLs gleichermaßen benutzt werden. Ohne Tricks etc. pp. UND es wird somit mehrfach "wiederverwendet" und nicht jedesmal eine separate Kopie in die PlugIn-DLL eingelinkt. Gruß Hagen |
Re: Sinn von DLL-Formularen
Wow...danke für die Erklärung.
Die Anschlussfrage: Wie linke ich diese Packages ein? Gibts da ein Tutorial? Wäre nett, wenn mir da noch ein bissl auf die Sprünge geholfen werden kann. Danke nochmals |
Re: Sinn von DLL-Formularen
Moin, moin
Da gibt es dann noch eine Argumentationsschiene: aus dem DP Thread ![]() Zitat:
Grüße // Martin |
Re: Sinn von DLL-Formularen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz