Registriert: Do Mai 13, 2004 16:36 Beiträge: 116 Wohnort: Deutsch-Wagram (Österreich)
Hi!
Jeder kennt sie, jeder liebt sie: Die mit Laufzeit-Packages erstellen - Funktion.
Zu der hätte ich da eine Frage: Kann ich auch eigene Packages in solche .BPL - Dateien umwandeln THX im Voraus
_________________ Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)
Registriert: Do Mai 13, 2004 16:36 Beiträge: 116 Wohnort: Deutsch-Wagram (Österreich)
Oh, cool!
Uh und noch was:
Man darf ja nur bestimmte Packages vertreiben (von Borland).
Ich hab da irgendwas von einem Zertifikat gelesen.
Der InstallShield Express for Delphi soll das haben, aber auf meiner CD (Delphi 5 Std.) finde ich den nicht.
Kann ich da ein eigenes Installer-Programm schreiben und dann die Packages mitinstallieren? (ich mein die von Borland, die eigenen ist ja klar).
_________________ Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Mal ne ganz bescheidene Frage. Warum willst du die überhaupt aus der Exe raus haben? Das bringt mehr oder minder doch nur Probleme mit sich. Du musst so nämlich extrem genau darauf achten, dass du alles mitbringst. Anderfalls läuft das Programm nur aus System wo Delphi installiert ist. Und wegen der Lizens musst du dir so auch keine Gendanken machen.
Registriert: Do Mai 13, 2004 16:36 Beiträge: 116 Wohnort: Deutsch-Wagram (Österreich)
Ich will halt gemeinsam verwendete Packages rauswerfen und extra mitliefern!
Das spart Speicherplatz!
Und du kannst mich nicht daran hindern! *g*
Ausserdem kann man aussuchen, was rausgeschmissen wird.
Also ist das kein Problem.
Ich werde das ganze natürlich auf einem Rechner mit dem alten Delphi 3 probieren, da sind die Packages für D5 sicher nicht dabei.
Ok, ich hab nochmal nachgelesen wegen der Packages: das mit dem Zertifikat gilt nur für die BDE.
Aber noch eine Frage hätt' ich:
Ich möchte meine Engine closed-source aber als Freeware "vertreiben".
Kann ich da (2 Mögl.):
1. Nur die BPL-Datei + DCU-Dateien mitliefern?
2. Zwar das "eigentliche" Package, aber auch nur die DCU-Dateien mitliefern?
Und wie sieht das dann mit den Komponenten aus (registrieren)?
_________________ Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)
Die ganzen Delphi Packages (VCL,RTL,...) als Laufzeit Packages zu compilieren macht nur dann sinn wenn eine Anwendung aus wirklich vielen dll oder exe Dateien besteht die diese Dateien benötigen. Damit kann dann für jede dll oder exe Datei die die Packages benötigt schon mal locker 400 kb gespart werden(mehr oder weniger, je nach Package). Bei einzelnen Anwendungen die aus einer exe Datei bestehen ist das mehr oder weniger Sinnlos...
Beim mitliefern der Borland Packages brauchst du dir nicht gerade viele Gedanken machen. Einfach die entsprechenden bpl Dateien (z.B. vcl60.bpl, rtl60.bpl, etc.) in das Verzeichniss deiner Anwendung mit installieren/kopieren lassen. (Alternativ gehts auch einfach ins Windows\System32\ Verzeichniss)
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Billi Berserker hat geschrieben:
Alternativ gehts auch einfach ins Windows\System32\ Verzeichniss
Dabei ist vorsicht geboten. Ich glaube einige Delphientwickler wären nicht sonderlich erfreut, wenn nach der deinstalalation eines Programmes seine eigenen Delphiprogramme nicht mehr funktionieren, weil die Pakages gelöscht wurden. Besser ist da das Programmverzeichnis.
Zu den eigenen Pakages. Ich weiß es nicht mehr so genau. Aber ich meine ich hätte auch mal eine Komponentensammlung gehabt, die die Quellen nicht mit ausgeliefert hat. Und das witzige an diesen bereits kompilierten Quellen war, dass man die auch nur mit dem Delphi wieder benutzen konnte mit edm auch kompiliert wurden. Also gleiche Version etc. Ich weiß allerdings nicht ob das nur eine Einstellungssache war. Ich kann mich daran aber auch nicht mehr so genau erinnern.
Eine andere Alternative wäre zum Bleistifft eine DLL. So wie bei Lithanders Partikel engine. Dazu müsstest du dann lediglich eine Wrapperklasse, oder Schnittstellenimplementierung (DGL OpenGL Header) mitliefern. Diese DLL wäre bei der richtigen Erstellung auch mit C++ Kompatibel. Allerdings ist das für visuelle Komponenten immer ein wenig schwieriger. Evtl. wäre es da einfacher du würdest die Quellen einfach mitgeben. Im Endeffekt macht das eh keinen großen Unterschied.
PS: Habe auch schon in gekauften Bibliotheken Fehler gefunden. Und da war es äußerst praktisch, dass die Quellen dabei waren.
Registriert: Do Mai 13, 2004 16:36 Beiträge: 116 Wohnort: Deutsch-Wagram (Österreich)
Welche Variante meinst du jetzt?
Die mit BPL oder normalem Package?
Programmverzeichnis ist am besten, in Win95 muss man z.B. nach C:\WINDOWS\System\ kopieren und nicht System32.
Eine DLL will ich eigentlich nicht.
Da hat man einige Probleme mit mehreren Instanzen von Klassen...
...kann keine Klassen in Funktionen übergeben...
...usw...
Notfalls liefere ich die Sources mit, aber gibt es eine Möglichkeit die DCUs/OBJs zu verwenden (vernünftig)?
_________________ Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)
Du mußt doch nur die dcu Dateien weitergeben, damit man sie in eigene Projekte einbinden kann. Der Vorteil gegenüber den Packages und DLL's ist, daß man keine externen Dateien mehr hat, wenn man die Anwendung nicht unbedingt verteilen will.
Registriert: Do Mai 13, 2004 16:36 Beiträge: 116 Wohnort: Deutsch-Wagram (Österreich)
Aber wie ist das dann mit visuellen Komponenten?
Wenn man ein Package installiert, dann werden ja die Komponenten registriert.
Genügen da auch die DCUs?
_________________ Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)
Man kann Komponenten auch nur aus dcu's registrieren. Das geht mit dem Menübefehl "Components/Install Component". Dann kann man entweder eine neue Package erstellen oder die Unit so einer Standard Package hinzufügen.
Bei Komponenten muß man zwischen Laufzeit- und Entwurfs-Packages unterscheiden. Die haben beide die Endung .bpl, aber die eine Version ist nur für die Delphi IDE. Die andere .bpl Datei ist für Anwendungen die mit Packages erstellt wurden und zusätzlich sind noch die ganzen dcu Dateien für Anwendungen ohne Packages dabei.
Wenn eine Unit nicht als dcu Datei vorliegt, kann man sie auch nur in Anwendungen mit Packages benutzen.
Bei der Delphi 6 PE Version ist z.B. die Unit DesignIntf nur in der Package designide und kann daher nur eingebunden werden, wenn man das Projekt mit Packages erstellt und diese Package als Laufzeitpackage hinzufügt.
Registriert: Do Mai 13, 2004 16:36 Beiträge: 116 Wohnort: Deutsch-Wagram (Österreich)
Aha.
Wenn ich also meine Engine als .BPL Datei vertreibe, NUR die BPL Datei, dann kann ich die genauso installieren, mitsamt visuellen Komponenten, aber ohne die DCU-Dateien kann man die Engine nur als Runtime Package verwenden.
Lieg ich da richtig?
_________________ Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)
Irgendwie bringen BPL Dateien doch nur Probleme - je weniger Schnickschnack bei einem potentiellen Kunden gewartet werden muss, desto besser - ist doch vollkommen egal, ob 300kb nun in der EXE oder in einer BPL Datei liegen.
Wenns schon unbedingt eine Laufzeitbibliothek sein muss, überlegst du dir besser eine prozedurale API (kann ja intern dennoch objektorientiert sein) und machst eine DLL - die kann man dann wenigstens auch mit anderen Programmiersprachen bzw. beliebigen Delphiversionen verwenden.
Registriert: Do Mai 13, 2004 16:36 Beiträge: 116 Wohnort: Deutsch-Wagram (Österreich)
Hmm...
Dann noch eine letzte Frage zu den Packages:
Kann ich eine .DPK Datei (normales Package) installieren, wenn ich nur die DCU-Dateien habe?
Und sind die DCU-Dateien, die ich mit D5 erstelle auch mit D7 lauffähig?
_________________ Diese Signatur ist defekt. Bitte wählen Sie die Numer 12846712894671893230917497617383216 (gültig ab 32.13.2671)
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.