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
Verständnisfrage Unit und so
-
- Beiträge: 245
- Registriert: Mo 13. Jan 2025, 12:11
Re: Verständnisfrage Unit und so
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.
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.
- 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
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
(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
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.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
- 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
Zu Punkt 1 oben: Ich glaube ich habs gefunden
Es ist in den Projekt-Einstellungen!
Siehe Screenshot
Es ist in den Projekt-Einstellungen!
Siehe Screenshot
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.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
-
- Beiträge: 245
- Registriert: Mo 13. Jan 2025, 12:11
Re: Verständnisfrage Unit und so
Danke WP.- echt kompliziert. Aber ich verstehe den Ablauf.-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.

-
- Beiträge: 245
- Registriert: Mo 13. Jan 2025, 12:11
Re: Verständnisfrage Unit und so
Danke Zvoni...habs gleich so geändert. Grüße.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