Units einbinden für Einsteiger

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
wsm
Beiträge: 4
Registriert: Fr 31. Jan 2020, 16:10

Units einbinden für Einsteiger

Beitrag von wsm »

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?

wsm
Beiträge: 4
Registriert: Fr 31. Jan 2020, 16:10

Re: Units einbinden für Einsteiger

Beitrag von wsm »

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?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4137
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Units einbinden für Einsteiger

Beitrag von af0815 »

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).

Warf
Beiträge: 1421
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: MacOS | Win 10 | Linux
CPU-Target: x86_64
Wohnort: Aachen

Re: Units einbinden für Einsteiger

Beitrag von Warf »

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:
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.

wsm
Beiträge: 4
Registriert: Fr 31. Jan 2020, 16:10

Re: Units einbinden für Einsteiger

Beitrag von wsm »

Vielen Dank,
hab das nun ausprobiert.

Fehlermeldung:
Dateianhänge
Fehler.jpg

wsm
Beiträge: 4
Registriert: Fr 31. Jan 2020, 16:10

Re: Units einbinden für Einsteiger

Beitrag von wsm »

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.

Warf
Beiträge: 1421
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: MacOS | Win 10 | Linux
CPU-Target: x86_64
Wohnort: Aachen

Re: Units einbinden für Einsteiger

Beitrag von Warf »

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: 266
Registriert: Do 17. Nov 2016, 11:52

Re: Units einbinden für Einsteiger

Beitrag von kupferstecher »

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.


Pfade.png
Pfade.png (60.57 KiB) 661 mal betrachtet

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

Re: Units einbinden für Einsteiger

Beitrag von theo »

Warum benutzt ihr nicht einfach den Online Package Manager?

Internettools und Synapse lassen sich dort per Knopfdruck herunterladen und korrekt installieren.
Dateianhänge
lazopm.png

kupferstecher
Beiträge: 266
Registriert: Do 17. Nov 2016, 11:52

Re: Units einbinden für Einsteiger

Beitrag von kupferstecher »

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.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4137
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Units einbinden für Einsteiger

Beitrag von af0815 »

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.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Warf
Beiträge: 1421
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: MacOS | Win 10 | Linux
CPU-Target: x86_64
Wohnort: Aachen

Re: Units einbinden für Einsteiger

Beitrag von Warf »

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.

Antworten