[Erledigt] Regeln für Namensvergabe (Projek und Unit)?

Für Fragen von Einsteigern und Programmieranfängern...
Erwin
Beiträge: 239
Registriert: Mi 16. Sep 2009, 14:15
OS, Lazarus, FPC: Xubuntu 20.04 / x86_64_linux-gtk 2 / L 2.0.6+dfsg-3 / FPC 3.0.4

Re: [Erledigt] Regeln für Namensvergabe (Projek und Unit)?

Beitrag von Erwin »

Manchmal frage ich mich schon, ob Ihr die Anderen (im jetzigem Fall mich) ärgern wollt?
af0815 hat geschrieben:
Sa 25. Sep 2021, 15:46
Ändere beim Erstellen nichts, sondern speichere mit dem richtigen Namen. Falls der doch nicht richtig ist, arbeite dannach mit Save As.
Das geht nicht. Wenn ich mit 'Richtigen' Namen speichere, dann müsste der Filename 'MyUnit' lauten, also mit groß und klein. Wenn ich mit 'myunit' speichere, lautet der UnitName (nicht Filename) ebenfalls 'myunit'. Das muss man eben dann per Hand anpassen. Geht nicht anders. Fragt sich nur, ob nachher oder vorher. Der beste Weg, durch vieles Probieren (nicht durch lesen von irgendwo her oder aus dem Gedächtnis von Anno dazumal) scheint mir zu sein, erst den Namen anzupassen ('MyUnit'), dann 'speichern unter', wo er dann als Filename 'myunit' vorschlägt. Dann steht auch in vor allem der lpr (uses), aber auch in der lpirichtig drin:
<Filename Value="myunit.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="MyUnit"/>
Und in der lpr heißt es in dem Fall (nur wenn man beim ersten Speichern 'speichern unter' macht, ebenfalls so, wie man es benannt hat. Sonst steht der erste Name, meist Unit1, dort, den er dann nicht findet).
wp_xyz hat geschrieben:
Sa 25. Sep 2021, 20:09
Erwin hat geschrieben:
Sa 25. Sep 2021, 13:33
Das mit der Namensänderung mittendrin ... Chaos, Einfach nur Chaos. Zwar fragt er, ob er löschen usw. soll. Aber letztendlich macht er all dies scheinbar nur in der lpr-Datei. Aber nicht in der lpi-Datei. Dort steht dann nach wie vor die alte Unit (und deren Adresse) drin. Dass er die Namentlich geänderte Datei findet, hat wohl eher was damit zu tun, dass er in dem Ordner, wo die Projektdatei ist (und auch manchen (selbst angelegten?) Unterordner) nach passenden Units durchsucht.
Keine Ahnung, was da passiert ist. Normalerweise ist alles problemlos, wenn du, wie af0815 schon sagte, Units nur beim "Speichern unter" umbenennst. Die Kopfzeile "unit Irgendwas" ist tabu für irgendwelche Änderungen.
Habe doch geschrieben WAS dort passiert, und noch mal getestet (obwohl es total auszuschließen war, dass letztes mal mein Gehirn mir da irgendwas gezeigt hätte).
Wenn ich 'myunit'/'MyUnit' mit 'speichern unter' abändere in 'MeinUnit', was so erst mal gar nicht geht, wenn dann eben 'meinunit', dann steht weiterhin in der 'lpi':
<Filename Value="myunit.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="MyUnit"/>
Er änderst das nur in der lpr. Dort, wenn man es erlaubt, wird dann (in der uses) 'MyUnit' durch 'meinunit' ersetzt.
Man sollte sich eher fragen WIESO!? Vermute mal, weil man zumindest unter Linux halt die 'lpi' eben nicht anpasst. Und dann muss man es halt per Hand machen.
Und auch sonst ... ohne die Kopfzeile zu ändern, ist es doch schwerlich möglich, eine Unit zu erstellen, dessen Filename alles klein geschrieben ist, aber der Unitname wiederum Groß- und Kleinbuchstaben enthält. Da fällt mir höchstens ein, dass man zuerst dem Filenamen 'MyUnit' gibt, und ihn dann noch mal abspeichert (speichern unter) als 'myunit'. Aber dann muss man in 'lpi' rein, weil dort steht bestimmt dann weiterhin 'MyUnit'.
Win 7 / Lazarus 1.6 / FP 3.0.0 / x86_64-win64-win32/win64

Erwin
Beiträge: 239
Registriert: Mi 16. Sep 2009, 14:15
OS, Lazarus, FPC: Xubuntu 20.04 / x86_64_linux-gtk 2 / L 2.0.6+dfsg-3 / FPC 3.0.4

Re: [Erledigt] Regeln für Namensvergabe (Projek und Unit)?

Beitrag von Erwin »

Mist, hatte mich* geirrt:
Es geht doch: Wenn ich unter 'MyUnit' speichere, gibt er der Unit dennoch den Filenamen 'myunit' während UnitName 'MyUnit' dann ist. Habe ich das von Euch überlesen, oder habt Ihr das eben nicht einfach geschrieben/mitgeteilt? Hätten wir uns vieles sparen können. Naja, ... allerdings wird die 'lpi' erst nach Neustart angepasst? Kann aber auch andere Gründe haben. Vielleicht wird es erst beim Projekt speichern angepasst? Das werde ich noch genauer testen.

Edit: Dort stand zuerst ich. Sollte aber mich heißen.

Wenn ich schon dabei bin ... beim Zweiten Test hat es prima funktioniert. Aber Eure Erklärungen dazu (sind auch irgendwo vorhanden gewesen aber ... komisch zerlegt, zu kurz, ... )?
Also wenn unter 'Werkzeug -> Einstellungen -> Umgebung -> Namensvergabe -> Speichern unter -> Dateinamen in Kleinbuchstaben' ausgewählt (Hacken) ist, wird grundsätzlich alles in klein abgespeichert. Aber eventuelle Großbuchstaben bei dem angegebenen Dateinamen werden für den Unitnamen übernommen, während eben beim Filenamen bei dieser Einstellung dennoch alles klein geschrieben wird.
Eigentlich so was von Einfach. Man braucht bei dieser Voreinstellung also nur so abspeichern, wie man den Namen haben will, und dennoch wird zugleich beim/der Filename alles klein geschrieben. Aber nirgends wird einem das so erklärt, dass man es als Laie auch versteht. Weil in der Regel, wenn man einer Datei einen Namen gibt, wird diese in der Regel genau unter dem Namen abgespeichert (mit Groß- und Kleinbuchstaben). Das es dort anders ist, darauf musste ich erst mal kommen.
Win 7 / Lazarus 1.6 / FP 3.0.0 / x86_64-win64-win32/win64

Antworten