Units einbinden für Einsteiger
Units einbinden für Einsteiger
Als alter Algol und PASCAL-Programmierer wollte ich nun Lazarus ausprobieren, um Internetseiten herunterzuladen und weiter zu untersuchen.
Dazu gibt es die Units "Internettools" , die ich auch schon runter geladen haben.
Dies liegen nun in einem Verzeichnis , welches ich in der Form
# Pfad für Internet Tools
# siehe: https://www.benibela.de/documentation/internettools/
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\data>/data/
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\internet>/internet/
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\system>/system
im fpc.cfg eingetragen habe.
Trotzdem wird die Unit "Internettools" nicht gefunden.
Ich benötige wohl eine step by step Anleitung, nachdem meine Internetsuchen erfolglos waren.
Was soll ich machen?
Dazu gibt es die Units "Internettools" , die ich auch schon runter geladen haben.
Dies liegen nun in einem Verzeichnis , welches ich in der Form
# Pfad für Internet Tools
# siehe: https://www.benibela.de/documentation/internettools/
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\data>/data/
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\internet>/internet/
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\system>/system
im fpc.cfg eingetragen habe.
Trotzdem wird die Unit "Internettools" nicht gefunden.
Ich benötige wohl eine step by step Anleitung, nachdem meine Internetsuchen erfolglos waren.
Was soll ich machen?
Re: Units einbinden für Einsteiger
Hab gerade einen Hinweis erhalten.
In der Form
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\>/data/
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\>/internet/
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\>/system
wir die Unit jetzt gefunden.
program Internet1;
// siehe auch https://wiki.lazarus.freepascal.org/Internet_Tools
uses simpleinternet;
begin
str := retrieve('http://www.google.de');
end.
Trotzdem kommt es danach zu einer Fehlermeldung.
Was fehlt noch?
In der Form
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\>/data/
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\>/internet/
-Fu<C:\Users\Sm\Desktop\Lazarus\internettools\>/system
wir die Unit jetzt gefunden.
program Internet1;
// siehe auch https://wiki.lazarus.freepascal.org/Internet_Tools
uses simpleinternet;
begin
str := retrieve('http://www.google.de');
end.
Trotzdem kommt es danach zu einer Fehlermeldung.
Was fehlt noch?
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Units einbinden für Einsteiger
nimm einmal die spitzen Klammern weg, die sind nur als Bescheibung gedacht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1910
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Units einbinden für Einsteiger
Erstmal, warum passt du die fpc.cfg an wenn du eh lazarus benutzt? Du kannst einfach die .lpk in lazarus öffnen, kompilieren und installieren, dann kümmert sich lazarus komplett um das Unit management (Steht ja auch so auf der Doku Seite).
Außerdem:
Die Fehlermeldung zu wissen wär grundsätzlich ganz nett, sonst kann man nur raten, z.b. Das du vergessen hast str zu definieren
Außerdem fehlt da noch ein bisschen was in deinem programm (Hauptsächlich Mode ObjFPC und H+):
Außerdem:
wsm hat geschrieben:Trotzdem kommt es danach zu einer Fehlermeldung.
Was fehlt noch?
Die Fehlermeldung zu wissen wär grundsätzlich ganz nett, sonst kann man nur raten, z.b. Das du vergessen hast str zu definieren
Außerdem fehlt da noch ein bisschen was in deinem programm (Hauptsächlich Mode ObjFPC und H+):
Code: Alles auswählen
program Internet1;
// siehe auch https://wiki.lazarus.freepascal.org/Internet_Tools
{$Mode ObjFPC}{$H+}
uses
simpleinternet;
var
str: String;
begin
str := retrieve('http://www.google.de');
end.
Re: Units einbinden für Einsteiger
Danke für eure Hilfen.
ich bin weitergekommen, indem ich fehlende Dateien in das Projektverzeichnis kopiert habe.
Bis auf Hinweise zu Duplikaten hat der erste Versuch geklappt.
ich bin weitergekommen, indem ich fehlende Dateien in das Projektverzeichnis kopiert habe.
Bis auf Hinweise zu Duplikaten hat der erste Versuch geklappt.
-
- Beiträge: 1910
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Units einbinden für Einsteiger
wsm hat geschrieben:Danke für eure Hilfen.
ich bin weitergekommen, indem ich fehlende Dateien in das Projektverzeichnis kopiert habe.
Bis auf Hinweise zu Duplikaten hat der erste Versuch geklappt.
Ich würde dir wirklich empfehlen es über die LPK zu laden:
In lazarus auf Package (Menü)->Package datei (.lpk) öffnen klicken, dann in dem sich öffnenden fenster einmal auf Kompilieren klicken, wenn das durch ist dann auf Verwenden->Installieren klicken, und von da an kümmert sich Lazarus ganz automatisch um die Abbhängigkeiten.
Du musst eigentlich nichts in dein Projektverzeichnis kopieren.
Andere Option: Packages->Online Package Manager (OPM) klicken, in dem sich öffnenden fenster nach InternetTools suchen, Haken setzen und unten auf Installieren klicken.
Die fpc.cfg würd ich eigentlich gar nicht anfassen, Lazarus kann eigentlich alles intern oder auf projektbasis handeln
- kupferstecher
- Beiträge: 422
- Registriert: Do 17. Nov 2016, 11:52
Re: Units einbinden für Einsteiger
Warf hat geschrieben:Ich würde dir wirklich empfehlen es über die LPK zu laden
Und wenns kein lpk gibt, dann einfach den Unit-Pfad in den Projekteinstellungen in Lazarus eintragen (Compilereinstellungen -> Pfade -> Andere Units).
Angehängt ein Screenshot, wie ich die Synapse-Bibliothek einbinde. Mit relativem Pfad, der Synapse-Ordner liegt eine Ebene über dem Lazarus-Projektordner in einem allgemeinen Projektordner. Den allgemeinen Projektordner kann ich dann auf einen anderen Rechner kopieren und direkt kompilieren und es ist trotzdem aufgeräumt.
Re: Units einbinden für Einsteiger
Warum benutzt ihr nicht einfach den Online Package Manager?
Internettools und Synapse lassen sich dort per Knopfdruck herunterladen und korrekt installieren.
Internettools und Synapse lassen sich dort per Knopfdruck herunterladen und korrekt installieren.
- kupferstecher
- Beiträge: 422
- Registriert: Do 17. Nov 2016, 11:52
Re: Units einbinden für Einsteiger
theo hat geschrieben:Warum benutzt ihr nicht einfach den Online Package Manager?
Internettools und Synapse lassen sich dort per Knopfdruck herunterladen und korrekt installieren.
Zum einen gibts den OPM noch gar nicht so lange.
Und zum Anderen müssen bei einer Neuinstallation von Lazarus die Packages neu installiert werden (je nach Lazarus-Installation).
Die Projekteinstellungen dagegen sind projektgebunden, so kann ich auch ein altes Projekt noch auf einem neuen Lazarus kompilieren ohne Bibliotheken nachzuinstallieren. Gerade bei spezielleren Bibliotheken (also nicht Synapse) ist das interessant.
Dein Hinweis ist aber gut, das hier ist sicher ein Thread, wo der eine oder andere in Zukunft noch durch Suche draufstoßen wird.
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Units einbinden für Einsteiger
Wenn der OPM gleich installiert wird, dann hilft er dir auch bei paketen, die noch nicht in Lazarus sind, nach einer Neuinstallation. Und so neu ist OPM nicht, wenn man ihn seit Anfang an verwendet hat Den gibt es eine gefühlte Ewigkeit
Übrigends kann man auch ein eignenes Repository einrichten, wo man 'seine' Komponenten hinterlegen kann. Ist zwar nicht unbedingt die leichteste Übung, aber es geht. Damit habe ich ein weiteres Repository wo die für mich wichtigen Komponneten liegen, die es halt nicht im offiziellen OPM sind. Ist für mich auch wichtig, da ich über längere Zeit Software warten darf und da mache ich nicht alles mit.
Übrigends kann man auch ein eignenes Repository einrichten, wo man 'seine' Komponenten hinterlegen kann. Ist zwar nicht unbedingt die leichteste Übung, aber es geht. Damit habe ich ein weiteres Repository wo die für mich wichtigen Komponneten liegen, die es halt nicht im offiziellen OPM sind. Ist für mich auch wichtig, da ich über längere Zeit Software warten darf und da mache ich nicht alles mit.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1910
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Units einbinden für Einsteiger
theo hat geschrieben:Warum benutzt ihr nicht einfach den Online Package Manager?
Internettools und Synapse lassen sich dort per Knopfdruck herunterladen und korrekt installieren.
Ich habs ja als alternative in meinem Post erwähnt.
Während der OPM zwar grundsätzlich ganz nett ist, mach ichs für größere Projekte anders. Da füg ich die Packages ins git des Projekts hinzu (z.b. als Submodule wenn es das package in einem git repo gibt), so kann ich auf den commit genau bestimmen welche version mein projekt verwendet, und kann garantieren sich da nix ändert (das letzte was man haben möchte ist das sich in einem 10kiloZeilen programm eine komponente ändert und man erst mal rausfinden muss warum nix mehr geht)
Für aber projekte die jetzt nicht so groß werden oder so langlebig sein sollen ist der OPM ziemlich angenehm und funktioniert super, oder wenn man einfach nur mal was testen will, einfach komponente anklicken, install drücken und man kann sie benutzen. Was mMn noch fehlt ist ein Command Line interface damit man über den OPM packages installieren kann und über lazbuild projekte bauen kann.