Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Eigene Komponente die "alles beinhaltet" (https://www.delphipraxis.net/194699-eigene-komponente-die-alles-beinhaltet.html)

sko1 23. Dez 2017 10:06

Eigene Komponente die "alles beinhaltet"
 
Hallo,

Ich habe eine eigene Komponente aus einer WPTools Richtext erstellt.

Diese nutzt innerhalb die Debenu QuickPdf Library...

Wenn ich nun eine neue Anwendung erstelle mit dieser Komponente muss im Suchpfad der zu Debenu eingetragen werden, sonst "wird QuickpdfLibrary nicht gefunden"!

Mein Ziel ist aber ein BPL was alles enthält, so dass mein Kollege diese Komponente nutzen kann ohne Debenu installiert zu haben!

Was mache ich falsch?

Ciao
Stefan

TBx 23. Dez 2017 10:11

AW: Eigene Komponente die "alles beinhaltet"
 
Du kannst deine Komponente mit Laufzeitpackages kompilieren und diese dann mitgeben.
Deine eigenen Quellen kannst Du ja je nach Wunsch beilegen. Von den Fremdkomponenten darfst Du in der Regel die Quellen nicht mitgeben.
Schwieriger wird es mit den Designtimepackages. Wenn beispielsweise Deine Komponente Propertyeditoren anderer Anbieter nutzt, kannst Du Probleme bekommen, Diese Propertxeditoren dürfen häufig nicht weiter gegeben werden.
Hier lohnt es sich, die Lizenzbedingungen der verwendeten Komponenten genau zu lesen.

Bernhard Geyer 23. Dez 2017 11:40

AW: Eigene Komponente die "alles beinhaltet"
 
Was ist das genaue Ziel? Installationsaufwand zu sparen oder Lizenzkosten?

Bezüglich Installationsaufwand:
Wir haben mittlerweile alles (als auch alle genutzten Komponenten) im git liegen.
Installation läuft so ab.
1, Delphi entsprechende Installationsanweisung installieren + Konfigurieren (2-3 Einstellungen müssen geändert werden)
2, git (+SourceTree) installiert
3, Repository klonen
4, Batch-Datei zum kompilieren aller Packages ausführen
5, Alle Packages im Package-Zielverzeichnis in der IDE registieren.
Zeitaufwand für neuen PC: 1-2 Stunden

Bezüglich Lizenzkosten:
Das wird nicht erlaubt sein. Will dein Kollege die Libraries in der IDE auch verwenden, so sind Lizenzen nötig.

himitsu 23. Dez 2017 12:50

AW: Eigene Komponente die "alles beinhaltet"
 
Du könntest die Debendu-Dateien in das Verzeichnis deiner Komponente kopieren, dann werden sie automatisch gefunden,
aber stell dir das Chaos vor, wenn mehrere Komponenten verwendet werden.


Du kannst aber auch Umgebungsvariablen nutzen.
Du erstellst dir je eine Variable für die größeren Bibliotheken, wo mehrere Verzeichnisse angegeben werden müssen,
(macht den Upgrade und vorallem das Löschen einfacher, da man die Pfade nicht mehr auseinander pflücken muß ... ihr kennt ja das Chaos in der berühmten %PATH% :wall:)
und dann eine/mehrere Variablen für zusammengesetzte Pfade aus mehrere Variablen.

Mußt nur aufpassen, dass unter gewissen Umständen die Variablen alphabetisch aufgelöst werden. (den Einzelvariablen z.B. einen "_" oder einen kleineren Buchstaben voranstellen)

Tools > Optionen... > Umgebungsoptionen > Umgebungsvariablen (die gelten dann nur innehralb der IDE)
Code:
KomponenteA = C:\abc;C:\def
KomponenteB = C:\xyz
Komponenten = $(KomponenteA);$(KomponenteB)

Komponenten = %KomponenteA%;%KomponenteB%   --- ginge auch
Dann im Suchpfad deiner Programme nur noch
Delphi-Quellcode:
;$(Komponenten)
anhängen.


Das Selbe geht auch mit Defines und den Packages.
In BildSystemen (ala FinalBuilder oder Jenkins) kann man auch Variablen benutzen und z.B. von dort aus mit Delphi synchronisieren.
Und beim CommandLineCompiler wird eine angepasste C:\Program Files (x86)\Embarcadero\Studio\*.0\bin\rsvars.bat verwendet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 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