AGB  ·  Datenschutz  ·  Impressum  







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

Sinn von DLL-Formularen

Ein Thema von TheMiller · begonnen am 15. Sep 2005 · letzter Beitrag vom 23. Sep 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Sinn von DLL-Formularen

  Alt 15. Sep 2005, 15:05
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
Bisheriger Nutzername "DJ-SPM"
  Mit Zitat antworten Zitat
HERMES

Registriert seit: 29. Nov 2004
142 Beiträge
 
#2

Re: Sinn von DLL-Formularen

  Alt 15. Sep 2005, 15:51
Da hast du ja einen möglichen sinn schon gefunden, aber es dient auch dazu anwendung zu modularisieren, beispielsweise.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

Re: Sinn von DLL-Formularen

  Alt 15. Sep 2005, 15:54
In wie fern? Module sind doch Plug-Ins, oder?
Bisheriger Nutzername "DJ-SPM"
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Sinn von DLL-Formularen

  Alt 15. Sep 2005, 16:00
Hallo,
wenn Du Formulare auslagern möchtest sind Packages besser geeignet.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Sinn von DLL-Formularen

  Alt 15. Sep 2005, 16:11
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
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#6

Re: Sinn von DLL-Formularen

  Alt 15. Sep 2005, 16:12
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
Bisheriger Nutzername "DJ-SPM"
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#7

Re: Sinn von DLL-Formularen

  Alt 15. Sep 2005, 17:15
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
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#8

Re: Sinn von DLL-Formularen

  Alt 15. Sep 2005, 18:28
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
Bisheriger Nutzername "DJ-SPM"
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#9

Re: Sinn von DLL-Formularen

  Alt 23. Sep 2005, 07:38
Moin, moin

Da gibt es dann noch eine Argumentationsschiene:
aus dem DP ThreadForms in einer DLL erzeugen

Zitat von MarcoWarm:
also das ist alles Möglich...
Es ist so, daß es generell nicht empfohlen wird VCL-Formulare in DLLs auszulagern, da das viel Speicher fressen soll, weil die VCL mehrfach geladen werden muss. Ich mach es trotzdem und die Programme laufen auch Anstandslos. Der offizielle Weg ist, bpl's zu benutzen. Das hab ich auch schon versucht, aber da ärgert man sich nur rum und muss dem Endkunden auch die ganzen System-BPLs von Borland mitliefern (nich so schön)
Wahrscheinlich wird man nicht alle Borland bpl´s brauchen, und man muss selbst herraussuchen welche man benötigt. Leider kann man die bpl´s nicht einfach in Unterverzeichnisse zur Exe legen (bisher ist mir kein Weg bekannt), so dass ein Anwendungsverzeichnis immer gut befüllt ist. Bei dll´s ist es möglich über das explizite Laden natürlich auch bestimmen wo diese abgelegt sind, sodaß man sein system besser strukturieren kann.

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#10

Re: Sinn von DLL-Formularen

  Alt 23. Sep 2005, 07:44
Zitat von mschaefer:
Leider kann man die bpl´s nicht einfach in Unterverzeichnisse zur Exe legen (bisher ist mir kein Weg bekannt), so dass ein Anwendungsverzeichnis immer gut befüllt ist. Bei dll´s ist es möglich über das explizite Laden natürlich auch bestimmen wo diese abgelegt sind, sodaß man sein system besser strukturieren kann.
Mit den Borland BPLs kann man das nicht machen, die eigenen BPLs kann man aber sehr wohl auch in Unterverzeichnisse legen und auch nur bei Bedarf laden/entladen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 17:21 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