Tools-Unit in allen Projkten benutzen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Ralf
Beiträge: 65
Registriert: Mi 29. Jan 2014, 18:31
OS, Lazarus, FPC: Ubuntu 20.04 LTS (L 2.0.6 FPC 3.3.1)
CPU-Target: 64Bit

Tools-Unit in allen Projkten benutzen

Beitrag von Ralf »

Ich habe einige Units mit Funktionen, welche ich zukünftig in verschiedenen Programmen (Projekten) verwenden möchte.
Bisher habe ich die Datei(n) einfach in das Projektverzeichnis kopiert.... was natürlich blöde ist, wenn ich die mal erweitern will....

Jetzt las ich, dass man das über Packages löst und habe ein "tools.lpk" angelegt und da mal eine unit hinzugefügt.
Lazarus findet nun die darin befindliche unit in meinem neuen Projekt.

Allerdings findet er (Compiler) nun nicht die units, welche in der Tools-Unit im uses Block stehen.
So meckert er nun über "graphics", was im aufrufenden Programm ebenfalls in der uses steht und dort meckert der Compiler nicht....

Muss ich nun alle uses ebenfalls mit "Hinzufügen" dem Packages hinzufügen oder geht das anders/einfacher?

Ich hoffe es versteht jemand meine neue Anfängerfrage :?
Kubuntu 20.04 LTS

Benutzeravatar
Jorg3000
Lazarusforum e. V.
Beiträge: 168
Registriert: So 10. Okt 2021, 10:24
OS, Lazarus, FPC: Win64
Wohnort: NRW

Re: Tools-Unit in allen Projkten benutzen

Beitrag von Jorg3000 »

Hi!
Ich kannte früher Packages nicht und habe deshalb in der Dateiordner-Hierarchie einen übergeordneten/parallelen Ordner zu meinen Projekten angelegt, in den ich meine Projekt-übergreifenden Units ablege, z.B. ...

\Projekt1\
\Projekt2\
\Projekt3\
\übergreifende Units\

Sobald ich in der Lazarus-IDE in einem Projekt erstmals eine Unit aus dem diesem Ordner lade/hinzufüge, wird man gefragt, ob dieser Ordner auch in den Suchpfad des geöffneten Projekts eingetragen werden soll.
Ab dann kann man alle Units des Ordners einfach über die uses-Klausel einbinden.

Wenn man seine allgemeinen Funktionen schön pflegt und immer im Hinblick auch auf seine anderen Projekte weiterentwickelt, verbessern sich alle eigenen Projekte nach und nach quasi automatisch.
Inzwischen programmiere ich immer so, dass ich kaum noch Projekt-spezifische Funktionen programmiere, sondern immer versuche allgemeingültige Funktionen für meine Sammlung übergreifender Units zu erstellen.
Grüße, Jörg

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Tools-Unit in allen Projkten benutzen

Beitrag von corpsman »

+1 für Jorg3000
ich mache das auch so, meine "libs" sind dabei aber noch zusätzlich Separiert (Graphik Erweiterungen, OpenGL Erweiterungen, Parser, Netzwerk, Mathematisches ...)
Ich gehe dann sogar immer noch den Schritt und pflege nicht nur die 1. Datei (mit Suchpfad) im Projektinspektor nach, sondern alle. Damit kann ich dann mittels meines Project Collectors und des Project Uncollectors meine Projekte schnell und einfach auf Rechner Synchronisieren, welche nicht an meinem Versionskontrollsystem hängen.
--
Just try it

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Tools-Unit in allen Projkten benutzen

Beitrag von Michl »

Ralf hat geschrieben:
Do 10. Feb 2022, 00:56
So meckert er nun über "graphics",
Das liegt daran, daß du in deinem Programm schon das Package LCL eingebunden hattest. Das macht Lazarus automatisch, wenn du unter Projekt -> Neues Projekt eine neue Anwendung erstellst (steht sogar dabei im Hinweisfenster).

Wenn du nun selber Packages erstellst, die bestimmte Abhängigkeiten benötigen, musst du diese einfach auch da einfügen. Öffne dazu einfach das eigene Package und klicke auf den Button <"+" Hinzufügen> -> Neue Anforderung und wähle das Package LCL aus (für Grahpics würde auch LCLBase ausreichen).

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: Tools-Unit in allen Projkten benutzen

Beitrag von Ally »

Bei mir funktioniert folgendes ganz gut:

Projekt
--Projekteinstellungen...
----Compilereinstellungen
------Pfade

bei Andere Units den Pfad auswählen unter dem die gewünschten Units liegen.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Tools-Unit in allen Projkten benutzen

Beitrag von theo »

Naja, viele Wege führen nach Rom.
Aber Packages sind schon der offizielle "Lazarus Weg" für dieses Problem.
https://wiki.freepascal.org/Lazarus_Pac ... mmon_units

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Tools-Unit in allen Projkten benutzen

Beitrag von fliegermichl »

theo hat geschrieben:
Do 10. Feb 2022, 11:19
Naja, viele Wege führen nach Rom.
Aber Packages sind schon der offizielle "Lazarus Weg" für dieses Problem.
https://wiki.freepascal.org/Lazarus_Pac ... mmon_units
und manuell Unitpfade zu Packageverzeichnissen hinzufügen, geht garantiert irgendwann in die Hose!

Antworten