AGB  ·  Datenschutz  ·  Impressum  







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

Laufzeit Packages XE6

Ein Thema von Pfaffe · begonnen am 3. Jul 2014 · letzter Beitrag vom 15. Jul 2014
Antwort Antwort
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#1

AW: Laufzeit Packages XE6

  Alt 4. Jul 2014, 09:04
In XE gehe ich in den Projektoptionen auf Packages. Wenn ich dort das Häkchen bei Laufzeit-Packages setze und dann das Eingabefeld leere, dann wird das Eingabefeld automatisch gefüllt, wenn das Häkchen bei Laufzeit-Packages einmal entfernt und wieder gesetzt wird. Erzeuge ich nun das Projekt, werden mir unter Projekt - Infos die verwendeten Packages, die ich mit weitergeben muss, angezeigt.
In XE6 wähle ich in den Projektoptionen "Packages - Laufzeit-Packages" und das Ziel "Release Konfiguration - 32-Bit-Windows Plattform". Wenn ich nun das Häckchen bei "Mit Laufzeit-Packages linken" setze dann passiert nichts. Ab jetzt verstehe ich die Vorgehensweise nicht mehr. Ein Projekt mit Laufzeit-Packages bekomme ich nicht übersetzt.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.631 Beiträge
 
Delphi 12 Athens
 
#2

AW: Laufzeit Packages XE6

  Alt 4. Jul 2014, 10:54
OK, jetzt verstehe ich wovon du redest.

XE6 verhält sich aber genauso wie beschrieben. Bei der Installation eines Entwurfszeit-Packages werden die davon benötigten Laufzeitpackages in die Liste eingetragen. Das kannst du ganz leicht überprüfen indem du z.B. bei dem TeeChart Standard VCL Components Package den Haken wegnimmst und wieder setzt. Dabei werden automatisch die davon benötigten Laufzeit-Packages Tee, TeeDB und TeeUI entfernt bzw. hinzugefügt. Das ist aber auch genau das, was die Hilfe sagt.

Das Verhalten unter XE kann ich hier jetzt leider nicht nachvollziehen, da ich gerade kein XE installiert habe. Es ist aber durchaus möglich, daß das dortige Verhalten im Zuge der Plattform-Vielfalt und der verschiedenen Build-Konfigurationen seit XE2 nicht mehr konsistent nachgebildet werden kann.

Am Ende muss aber doch der Entwickler selbst entscheiden, welche Packages er benutzen will und welche Units direkt in die Exe eingelinkt werden sollen. Es ist ja nicht zwingend, daß beim Compilieren mit Packages immer alle möglichen Packages eingebunden werden. Man kann das ja auf eine sinnvolle Auswahl beschränken.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Laufzeit Packages XE6

  Alt 4. Jul 2014, 11:20
Aso, das meinst du.

Und dann werden all diese Optionen einmal in der IDE und dann nochmal im gerade aktiven Projekt gespeichert.
Man kann also für jedes Projekt auchnochmal einzeln sagen was wann passieren soll.

Bei uns ist das auch nochmal bissl blöd:
- wir haben eine Umgebungsvariable mit den Packages für all unsere Projekte (EXE und die vielen DLLs), um das nur einmal definieren/ändern zu müssen.
- nur schaut diese "aufnehmen" Funktion natürlich nur in den string und prüft nicht, ob es in den enthaltenen Umgebungsvariablen bereits enthalten ist. (erst Vaiablen auflösen und dann schauen)

Hmmm, mir ist aber so, als wenn die XE6-Trial das aber richtig mit den Packagenamen befüllt hätte.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.631 Beiträge
 
Delphi 12 Athens
 
#4

AW: Laufzeit Packages XE6

  Alt 4. Jul 2014, 11:23
Hmmm, mir ist aber so, als wenn die XE6-Trial das aber richtig mit den Packagenamen befüllt hätte.
Die sind auch richtig vorbesetzt. Nur wenn man die Zeile leer macht, wird sie nicht allein durch das Aktivieren des Compilierens mit Packages neu belegt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#5

AW: Laufzeit Packages XE6

  Alt 8. Jul 2014, 12:02
Resümee:
1. Die von Embarcadero gelieferten BPLs, z.B. vcl200, unterscheiden sich nicht im Namen. Besser wäre es, wenn die für die 32-Bit Version vcl32200 und für die 64-Bit Version vcl64200 heißen würden. -> Designfehler
2. Die Ausgabeordner für eigene BLPs lauten "...\Embarcadero\Studio\14.0\Bpl\" + Win64 für 64-Bit und Win32 für 32-Bit. Jedoch wird der Win32 Ordner nicht verwendet, die Dateien landen im "...\Embarcadero\Studio\14.0\Bpl\" Ordner. -> BUG
3. In den Projektoptionen für BPLs kann ich ein LIB-Suffix angeben. Beim Kompilieren wird der aber nicht immer akzeptiert. Entweder fehlt das Suffix bei der erzeugten Datei oder er ist falsch. Man muss per Explorer in den Ausgabeordner gehen und die Datei umbenennen, bzw. man muss die bpl kopieren und unter zwei verschiedenen Namen abspeichern, denn oft gibt es Probleme auch beim Erzeugen des Designtime Pagages. -> BUG
4. Für DLLs fehlt in den Projektoptionen fehlt die Möglichkeit einen LIB-Suffix anzugeben, man muss die DLL übersetzen und dann per Explorer umbenennen. -> Das hat mit RAD nicht zu tun.
5. Ich habe eine Unit, in der sind die Functions für den Zugriff meine DLL enthalten. In dieser Unit befinden sich {$IFDEF WIN64} Direktiven. Durch diese Direktiven gibt es Zeilenverschiebungen beim Debuggen. Der Debugger ist immer ein par Zeilen zu weit oben, Breakpoints können nicht vernünftig gesetzt werden. -> No RAD, BUG
6. Generell scheint der Bereich Projektoptionen nicht durchdacht zu sein. Aufgerufen wird das Fenster mit Projekt-Optionen oder in der Projektverwaltung mit Bearbeiten (Übersetzungsfehler). -> No RAD
--> Derzeit ist XE6 als 64-Bit mit bpl Technik nicht zu gebrauchen. Ohne bpl Technik funktioniert aber alles soweit. Wer kein 64 Bit benötigt, kann nach meiner Meinung bei XE bleiben. Das Thema App-Entwicklung ist nochmals ein ganz anderes Thema. Intressant ist, das der Begriff RAD beim Delphi XE6 nicht mehr verwendet wird, auch der Ordner heißt jetzt "C:\Program Files (x86)\Embarcadero\Studio\" und nicht mahr "C:\Program Files (x86)\Embarcadero\RAD Studio".
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.631 Beiträge
 
Delphi 12 Athens
 
#6

AW: Laufzeit Packages XE6

  Alt 8. Jul 2014, 12:38
1. Die von Embarcadero gelieferten BPLs, z.B. vcl200, unterscheiden sich nicht im Namen. Besser wäre es, wenn die für die 32-Bit Version vcl32200 und für die 64-Bit Version vcl64200 heißen würden. -> Designfehler
Im Gegenteil! Selbst Windows verwendet dieselben Namen für 32- und 64-Bit Programme und Bibliotheken. Die stehen dann halt in unterschiedlichen Verzeichnissen.

2. Die Ausgabeordner für eigene BLPs lauten "...\Embarcadero\Studio\14.0\Bpl\" + Win64 für 64-Bit und Win32 für 32-Bit. Jedoch wird der Win32 Ordner nicht verwendet, die Dateien landen im "...\Embarcadero\Studio\14.0\Bpl\" Ordner. -> BUG
Funktioniert hier einwandfrei.

3. In den Projektoptionen für BPLs kann ich ein LIB-Suffix angeben. Beim Kompilieren wird der aber nicht immer akzeptiert. Entweder fehlt das Suffix bei der erzeugten Datei oder er ist falsch. Man muss per Explorer in den Ausgabeordner gehen und die Datei umbenennen, bzw. man muss die bpl kopieren und unter zwei verschiedenen Namen abspeichern, denn oft gibt es Probleme auch beim Erzeugen des Designtime Pagages. -> BUG
Auch dies kann ich nicht nachvollziehen. Vielleicht wird deine Einstellung in einer abgeleiteten Konfiguration überschrieben?

4. Für DLLs fehlt in den Projektoptionen fehlt die Möglichkeit einen LIB-Suffix anzugeben, man muss die DLL übersetzen und dann per Explorer umbenennen. -> Das hat mit RAD nicht zu tun.
Eigentlich braucht man bei einer DLL kein LIBSUFFIX. Das ist dafür erfunden worden, damit man nicht bei jedem neuen Delphi die requires Klausel eines Packages anpassen muss. So reicht es einfach z.B: RTL und VCL zu schreiben, während die BPLs dann mit dem passenden Suffix erzeugt werden. Insofern haben LIBSUFFIX und DLL überhaupt nichts miteinander zu tun.

Wenn aber nun unbedingt deine DLL eine Ergänzung zum Projektnamen haben soll, hilft dir vielleicht ein sinnvoller Eintrag in "Erweiterung der Zieldatei" weiter.

5. Ich habe eine Unit, in der sind die Functions für den Zugriff meine DLL enthalten. In dieser Unit befinden sich {$IFDEF WIN64} Direktiven. Durch diese Direktiven gibt es Zeilenverschiebungen beim Debuggen. Der Debugger ist immer ein par Zeilen zu weit oben, Breakpoints können nicht vernünftig gesetzt werden. -> No RAD, BUG
QC?


6. Generell scheint der Bereich Projektoptionen nicht durchdacht zu sein. Aufgerufen wird das Fenster mit Projekt-Optionen oder in der Projektverwaltung mit Bearbeiten (Übersetzungsfehler). -> No RAD
Das stimmt nicht ganz. Das "Bearbeiten" bezieht sich auf die Build-Konfiguration, deren Optionen damit bearbeitet werden. Dazu wird diese im Options-Dialog auch selektiert. Die Projektoptionen werden in der Projektverwaltung aus das Kontextmenü des Projekts ebenfalls über "Optionen" aufgerufen.

Intressant ist, das der Begriff RAD beim Delphi XE6 nicht mehr verwendet wird, auch der Ordner heißt jetzt "C:\Program Files (x86)\Embarcadero\Studio\" und nicht mahr "C:\Program Files (x86)\Embarcadero\RAD Studio".
Das ist offenbar der Einführung von AppMethod geschuldet, das dieselbe Ordner-Struktur wie RAD-Studio verwendet (weswegen auch nicht beide auf demselben System installiert sein dürfen). Beide Produkte laufen somit unter dem Oberbegriff "Embarcadero Studio", was die Umbenennung des Ordners und die zusätzliche Verzeichnisstufe erklärt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#7

AW: Laufzeit Packages XE6

  Alt 10. Jul 2014, 09:55
Hallo, ich bins nochmal...
Danke an Uwe, mittlerweile bin ich soweit, sowohl 32-Bit, als auch 64-Bit Anwendungen mit BPL-Technik zu erstellen, jedoch derzeit nur mit den von Embacardero mitgelieferten.
Bei den Ausgabeordnern für 32-Bit bpls fehlte bei mir das $(Platform). Habe ich hinzugefügt und die Path-Variable angepasst. Vorhanden Packages habe ich bereinigt. Das mit den unterschiedlichen LIB-Suffixe für 32/64 Bit funktioniert nicht, macht aber nix, den Uwe hat Recht. Nun liegt bei mir im bpl Ordner Garnichts mehr und Path-Variablen sind richtig konfiguriert. Komischerweise hat dann aber XE6 beim Start gemeckert und gefordert, dass auch der bpl selbst in der Path-Variable aufgenommen wird. OK, habe ich gemacht, damit zickt XE6 nicht mehr. Nun habe ich mein XE6 lieb gewonnen (Ja, so sind wir Delphi-Entwickler nun mal, wir lieben und hassen unser Delphi gleichermaßen. Wir haben eben Gefühle.), dafür musste aber XE5 weichen.
Nachdem ich dann XE5 vom PC entfernt hatte, war irgendwie dann auch noch die SDK Installation, obwohl die im Unterordner 14.0 liegt, kaputt. Also habe ich erstmal meinen PC bereinigt (Registry, Path-Variable, Ordner) und dann XE6 wieder repariert, indem ich das Mobile-Pack nochmals installiert habe.
Nachdem ich nun auch noch kapiert habe, dass man im Feld Laufzeit-Packages in den Projektoptionen nicht vcl200, sondern vcl einträgt, funktioniert das Erzeugen und Starten von 32-Bit und 64-Bit vcl-Anwendungen mit Laufzeit-Packages. Was mir nicht bewusst war, ist, dass die Exe weis, welche bpl, 32- oder 64-Bit, sie aufrufen muss. Gefunden werden die bpls nur über einen Eintrag in der Pathvariablen.
Zum Test habe ich den kompletten Ordner "C:\Program Files (x86)\Embarcadero\Studio\14.0\Redist" auf meinen Win 8 Testrechner kopiert und dort in die Pathvariable "C:\MeinTestordner\Redist\win32" und "C:\MeinTestordner\Redist\win64" eingetragen. Und siehe da, meine 32Bit und meine 64-bit Anwendungen funktionieren.
Offene Punkte/Fragen:
a. Gibt es auch eine Möglichkeit, das ohne Path-Variable hinzubekommen. Ich möchte die bpls aber auch nicht in einen Systemordner ablegen? Bisher dachte ich immer die Pathvariable ist ein Überbleibsel aus der alten DOS Zeit.
b. Was passiert wenn ein anderer Delphi-Entwickler ebenfalls bpl einsetzt aber in einem anderen Updatelevel, das kann zu Problemen führen?
c. Wenn ich eine eigene bpl mit angebe, kommt beim compilieren die Meldung, dass das Never-Build Packages neu compiliert werden muss, die dpk Datei wird geöffnet und dort steht {$IMPLICITBUILD ON}. Ich habe aber beim Erstellen der Packages in den Projektoptionen unter Build-Steuerung "Wenn erforderlich" angegeben. Hier komme ich nicht weiter.
  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 00:32 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