Verständnisfrage Unit und so

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Andy Nightingale
Beiträge: 245
Registriert: Mo 13. Jan 2025, 12:11

Verständnisfrage Unit und so

Beitrag von Andy Nightingale »

Hallo Leute,
irgendetwas check ich nicht. Also ich erstelle ein neues Projekt. Dann mache ich: alles speichern und vergeb den Namen.
Dann clicke ich "new pascal unit". Dann wird eine Unit2 erstellt. Ich benenne die dann um. Dann sage ich speichern.
Dann möchte ich mein Programm testen mit F9. Dann kommen zwei Fehlermeldungen....ein im .lpr wird rot in Zeile unit1 und unit2.- obwohl ich die doch im Namen geändert habe.
Dann ändere ich das und drücke wieder F9.- dann kommt die Fehlermeldung für die "eigentliche Unit2" die ich aber umbenannt habe in "Fenstermethode".- dann kommt: Fentermethode.pas: error findet fenstermethode.lfm nicht. Da mache ich doch grundsätzlich was vom Ablauf falsch.
Wie kann ich eigentlich eine Unit löschen? Was mache ich falsch. Danke

wp_xyz
Beiträge: 5163
Registriert: Fr 8. Apr 2011, 09:01

Re: Verständnisfrage Unit und so

Beitrag von wp_xyz »

Verwendest du Lazarus/main? Hier wurde viel mit dem Umbenennen von Bezeichnern gemacht, und da hat sich offenbar dieser Fehler eingeschlichen. Ich habe das gerade als Bug gemeldet (https://gitlab.com/freepascal.org/lazar ... sues/41531).

Zur Behebung lädst du die Projekt-Datei (mit der lpr-Endung) in den Editor und änderst dort den Namen der neuen Unit entsprechend um (oder löschst ihn gleich komplett, denn die meisten Units werden in der Projekt-Datei nicht gebraucht).

Zum Löschen einer Unit: Normalerweise wird die Unit im Projekt verwaltet. Daher musst du den Projekt-Inspektor öffnen, dort siehtst du alle im Projekt verwendeten Units. Wähle die betreffende Unit und klicke auf '-'. Dann gehe in den Dateimanager des Betriebssystems und lösche die Unit-Datei (oder benenne sie um oder verschiebe sie in einen anderen Ordner, falls du sie doch noch brauchst). Finde den Ordner, in den Lazarus die kompilierten Units schreibt (üblicherweise "lib", manchmal auch "units") und lösche dort die kompilierte Unit ebenfalls (du kannst aber auch den kompletten Ordner löschen, damit alles mit Sicherheit neu kompiliert wird). Zurück in der IDE versuche, das Projekt zu übersetzen. In allen Units, in denen die gelöschte Unit vorkommt erhältst du einen Fehler - die Unit dort entfernen und nochmal probieren.
Zuletzt geändert von wp_xyz am Fr 14. Mär 2025, 13:57, insgesamt 1-mal geändert.

Benutzeravatar
Zvoni
Beiträge: 378
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Verständnisfrage Unit und so

Beitrag von Zvoni »

1) Jedesmal wenn du eine neue Unit erzeugst/zum Projekt hinzufügst, fügt Lazarus im gleichen Moment diese "unit" in der Uses-Klauses der lpr ein, und zwar mit ihrem Default-Namen!!
(Wobei ich glaube mich dunkel daran zu erinnern, dass man das irgendwo in den Optionen/Einstellungen einstellen kann, ob es einfügen soll oder nicht, Default ist einfügen glaub ich)

2) Lass mich raten: Du hast den Unit-Namen im Code-Fenster geändert NACHDEM du bereits einmal gespeichert hast. Jede Form-Unit hat direkt nach "Implementation"
die Direktive {$R *.lfm} --> heisst: Es wird automatisch beim Speichern eine lfm gleichen namens wie die *.pas angelegt. Wenn du jetzt hinterher den Dateinamen der pas änderst, fliegt alles aus der Kurve (Mir selbst schon passiert), weil Lazarus nach "MeineUnit.lfm" sucht (weil deine pas "MeineUnit.pas" heisst), auf der Festplatte ist sie aber noch als "unit1.lfm" drauf

Empfehlung:
Neue Unit anlegen/erzeugen
Unitnamen festlegen
Unit Speichern (unter)
Unitnamen nicht mehr anfassen
ggfs. lpr aufräumen

3) Eine Unit lässt sich im Projekt-Inspektor löschen.
Achtung: Wird nur aus dem Projekt entfernt. Nicht auf der Festplatte gelöscht
Unbenannt.PNG
Unbenannt.PNG (13.75 KiB) 2429 mal betrachtet
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
Zvoni
Beiträge: 378
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Verständnisfrage Unit und so

Beitrag von Zvoni »

Zu Punkt 1 oben: Ich glaube ich habs gefunden
Es ist in den Projekt-Einstellungen!

Siehe Screenshot
Unbenannt.PNG
Unbenannt.PNG (50.05 KiB) 2397 mal betrachtet
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Andy Nightingale
Beiträge: 245
Registriert: Mo 13. Jan 2025, 12:11

Re: Verständnisfrage Unit und so

Beitrag von Andy Nightingale »

wp_xyz hat geschrieben: Fr 14. Mär 2025, 13:51 Verwendest du Lazarus/main? Hier wurde viel mit dem Umbenennen von Bezeichnern gemacht, und da hat sich offenbar dieser Fehler eingeschlichen. Ich habe das gerade als Bug gemeldet (https://gitlab.com/freepascal.org/lazar ... sues/41531).

Zur Behebung lädst du die Projekt-Datei (mit der lpr-Endung) in den Editor und änderst dort den Namen der neuen Unit entsprechend um (oder löschst ihn gleich komplett, denn die meisten Units werden in der Projekt-Datei nicht gebraucht).

Zum Löschen einer Unit: Normalerweise wird die Unit im Projekt verwaltet. Daher musst du den Projekt-Inspektor öffnen, dort siehtst du alle im Projekt verwendeten Units. Wähle die betreffende Unit und klicke auf '-'. Dann gehe in den Dateimanager des Betriebssystems und lösche die Unit-Datei (oder benenne sie um oder verschiebe sie in einen anderen Ordner, falls du sie doch noch brauchst). Finde den Ordner, in den Lazarus die kompilierten Units schreibt (üblicherweise "lib", manchmal auch "units") und lösche dort die kompilierte Unit ebenfalls (du kannst aber auch den kompletten Ordner löschen, damit alles mit Sicherheit neu kompiliert wird). Zurück in der IDE versuche, das Projekt zu übersetzen. In allen Units, in denen die gelöschte Unit vorkommt erhältst du einen Fehler - die Unit dort entfernen und nochmal probieren.
Danke WP.- echt kompliziert. Aber ich verstehe den Ablauf.- :D

Andy Nightingale
Beiträge: 245
Registriert: Mo 13. Jan 2025, 12:11

Re: Verständnisfrage Unit und so

Beitrag von Andy Nightingale »

Zvoni hat geschrieben: Fr 14. Mär 2025, 14:33 Zu Punkt 1 oben: Ich glaube ich habs gefunden
Es ist in den Projekt-Einstellungen!

Siehe Screenshot
Unbenannt.PNG
Danke Zvoni...habs gleich so geändert. Grüße.

Antworten