AGB  ·  Datenschutz  ·  Impressum  







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

Formulare in BPLs

Ein Thema von Angel4585 · begonnen am 27. Mai 2011 · letzter Beitrag vom 3. Jun 2011
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

Formulare in BPLs

  Alt 27. Mai 2011, 10:37
Hallo,

ich habe in einer BPL ein Formular für einen Suchdialog.
Jetzt möchte ich in einer zweiten BPL die erste BPL einbinden und den Suchdialog aufrufen.
Beim Compilieren sagt mir die IDE dann, dass die DFM des Suchdialogs nicht gefunden werden kann.

Naja ich hab den Sourceordner der ersten BPL nicht in den Suchpfaden, will ich eigentlich auch nicht, da es rein über die dcu gehen sollte.
Warum wird da zwingend die DFM verlangt und wie kann man das besser machen?

Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

AW: Formulare in BPLs

  Alt 27. Mai 2011, 11:25
In der DCU liegt die DFM nicht drin.

DCU = kompilierter Code der PAS
DFM = Ressource des Formulars.

Es müssen also PAS+DFM oder DCU und DFM immer zusmmenliegen.



Aber eigentlich dachte ich, daß die DFM mit in die BPL gelinkt wird, genauso wie die DCU auch einkompiliert wird.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Formulare in BPLs

  Alt 27. Mai 2011, 11:30
Hallo

also ich gehe davon aus, daß du die DCP der FormEnthaltende.bpl in der Rubrik "Erfordert" der FormBenoetigende.bpl eingetragen hast.
Wenn du an den Standardeinstellungen des Package Projektes (FormEnthaltende.bpl) nichts geändert hast, steht unter Projektoptionen->Beschreibung->Build-Steuerung sicherlich "Wenn Erforderlich". Das heißt, daß Delphi selbst entscheidet, wann es dieses Package zusammenbaut. Wenn du also das FormBenoetigende.bpl Package kompilierst kann es sein, daß Delphi das FormEnthaltende.bpl implizit vorsorglich selbst nochmal bauen will. Da kann es u.U. vorkommen, daß der Pfad nicht gefunden wird. Wenn du bei der Build-Steuerung "Manuell" auswählst, entscheidest du selbst, wann du welches Package erzeugst. Das spart Zeit im Build Prozess, kann aber wieder diverse andere Compilerfehler triggern (siehe Interner Fehler U2156) (aber wenn man die einmal kennt erschrickt man nicht mehr )
Es gibt sicherlich Einige, die der oben genannten Darstellung widersprechen möchten, wir sind jedoch mit dieser Methode immer sehr gut gekommen. Unser größstes Projekt umfasst ca 60 Programm-Packages (d.h. 3rd Party Komponenten und Delphi Packages kommen da noch dazu) die alle lustig munter auf (oder besser ineinander) zugreifen. Und es funktioniert tadellos.

Viel Spaß mit Packages weiterhin

Gruß
Marco
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Formulare in BPLs

  Alt 3. Jun 2011, 12:11
Also wenn ich eure Antworten so lese glaube ich das Prinzip mit den Packages nicht verstanden zu haben.


Ein Package ist eine BPL, oder?
In der BPL sollte alles drin sein was zu der BPL gehört.
D.h. wenn ein Formular drin ist, dann sind alle Daten - auch die DFM - in der BPL drin.

Wenn ich also ein Package als Entwurfszeitpacke in der IDE installiere sollte man doch eigentlich auf alles aus dem Package zugreifen können oder?

Da das nicht so problemlos wie gedacht funktioniert, scheint irgendwo in meiner Logik etwas nicht zu stimmen.
Ich vermute mal es liegt an dem Punkt "In der BPL sollte alles drin sein was zu der BPL gehört".
Wenn ich eine BPL installiere, was passiert dann genau?

Und was genau ist eine DCP? Ich hab hier nur BPLs.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Formulare in BPLs

  Alt 3. Jun 2011, 12:53
DCP = delphi compiled package. Sozusagen die dcu des Packages und die wird auch beim Kompilieren eines Packages erzeugt. Standardmäßig unter Delphi 2010 in das $(BDSCOMMONDIR)\Dcp Verzeichnis. Diese wird benötigt, um dein Package1 in Package2 zu benutzen. Ansonsten werden alle benötigten Units in Package2 kompiliert. Scheint bei dir der Fall zu sein, denn dass er die dfm nicht findet, deutet auf die Benutzung der dcu hin.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Formulare in BPLs

  Alt 3. Jun 2011, 13:19


Also die werden in die dcp compiliert aber nicht benutzt, stattdessen werden die dcu's genutzt?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Formulare in BPLs

  Alt 3. Jun 2011, 13:25
Steht Package1 im requires des Package2?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  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 06:13 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