Formulare und deren Namen
-
- Beiträge: 732
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Formulare und deren Namen
Hallo zusammen,
ich versuche grade etwas mehr Übersichtlichkeit in mein Programm zu bringen.
Die Dateien für die Formulare heissen ja immer automatisch "Unit[x].pas"
Wobei [x] die Formularnummer ist.
irgendwann hat man etliche Dateien: unit1,unit2,unit3 usw.
Was ist nun was ?
Nun habe ich die unit1 also Formular 1 geladen und speichere sie unter "uFormMain"
Datei Speichern unter.....
Lazarus macht aber aus allen Buchstaben "Kleinbuchstaben" und dann heisst die Datei
uformmain.pas , was mich eher an "ufo"s erinnert....Spass muss sein
so habe ich die Dateien im Explorer mal umbenannt in
uFormMain.pas
uFormMain.lfm
lade ich mein Programm, steht da aber wieder
unit uformmain;
Also muss bzw. kann, das ist ja keine Pflicht, es hier auch ändern.
unit uFormMain;
Das bleibt dann auch glücklicherweise so.
Wie verwaltet ihr denn eure Namen wenn man mehrere Formulare hat ?
Form2.Show finde ich nicht sehr aussagekräftig.
aber FormAkkuParams.Show spricht schon für sich selbst.
Dann sollten die Dateien aber auch annähernd gleiche Namen haben.
Natürlich dürfen sie nicht den gleichen Namen haben, das funktioniert nämlich nicht
aber uFormAkkuParams.pas sowie uFormAkkuParams.lfm haben dann wieder eine eindeutige Zugehörigkeit.
im Programm und auch dem Datenträger.
die eigentlich Frage kam jetzt aber etwas zu kurz:
Warum speichert Lazarus IMMER die Dateien in Kleinbuchstaben, obwohl ich das anders eintrage bei "Speichern unter" ?
Achso, evtl. muss ich erwähnen: Ich arbeite mit Windows 64Bit und Lazarus 2.0.8
Siro
ich versuche grade etwas mehr Übersichtlichkeit in mein Programm zu bringen.
Die Dateien für die Formulare heissen ja immer automatisch "Unit[x].pas"
Wobei [x] die Formularnummer ist.
irgendwann hat man etliche Dateien: unit1,unit2,unit3 usw.
Was ist nun was ?
Nun habe ich die unit1 also Formular 1 geladen und speichere sie unter "uFormMain"
Datei Speichern unter.....
Lazarus macht aber aus allen Buchstaben "Kleinbuchstaben" und dann heisst die Datei
uformmain.pas , was mich eher an "ufo"s erinnert....Spass muss sein
so habe ich die Dateien im Explorer mal umbenannt in
uFormMain.pas
uFormMain.lfm
lade ich mein Programm, steht da aber wieder
unit uformmain;
Also muss bzw. kann, das ist ja keine Pflicht, es hier auch ändern.
unit uFormMain;
Das bleibt dann auch glücklicherweise so.
Wie verwaltet ihr denn eure Namen wenn man mehrere Formulare hat ?
Form2.Show finde ich nicht sehr aussagekräftig.
aber FormAkkuParams.Show spricht schon für sich selbst.
Dann sollten die Dateien aber auch annähernd gleiche Namen haben.
Natürlich dürfen sie nicht den gleichen Namen haben, das funktioniert nämlich nicht
aber uFormAkkuParams.pas sowie uFormAkkuParams.lfm haben dann wieder eine eindeutige Zugehörigkeit.
im Programm und auch dem Datenträger.
die eigentlich Frage kam jetzt aber etwas zu kurz:
Warum speichert Lazarus IMMER die Dateien in Kleinbuchstaben, obwohl ich das anders eintrage bei "Speichern unter" ?
Achso, evtl. muss ich erwähnen: Ich arbeite mit Windows 64Bit und Lazarus 2.0.8
Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
-
- Lazarusforum e. V.
- Beiträge: 317
- Registriert: So 5. Mai 2019, 16:52
- OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
- CPU-Target: x86_64, i386
- Wohnort: Bayreuth
Re: Formulare und deren Namen
Lazarus macht das, weil das so eingestellt ist, um Probleme z.B. unter Linux zu verhindert. Dort spielt die Groß- und Kleinschreibung eine Rolle. Das könntest du aber umstellen... Siehe auch hier.
Das mit den UFO liegt an dir. Meine Formulare heißen historisch bedingt immer etwas mit frm, also z.B. frmMain. Damit ergibt sich der Dateiname ufrmmain.pas.
Das mit den UFO liegt an dir. Meine Formulare heißen historisch bedingt immer etwas mit frm, also z.B. frmMain. Damit ergibt sich der Dateiname ufrmmain.pas.
Tipp für PostgreSQL: www.pg-forum.de
-
- Beiträge: 732
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: Formulare und deren Namen
Oh, vielen Dank für deine schnelle Hilfe,
genau das habe ich gesucht:
mit dem frm als Dateiname gefällt mir auch sehr gut,
wenn da kein Copyright drauf ist, würde ich das auch gern verwenden, gute Idee.
Siro
genau das habe ich gesucht:
mit dem frm als Dateiname gefällt mir auch sehr gut,
wenn da kein Copyright drauf ist, würde ich das auch gern verwenden, gute Idee.
Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Formulare und deren Namen
ich häng das u immer hinten dran.
Mainform : TMainform ist in mainformu.pas gespeichert.
Mainform : TMainform ist in mainformu.pas gespeichert.
Re: Formulare und deren Namen
Den Automatismus mit der Kleinschreibung auszuschalten, würde ich nur dann tun, wenn ich sicher bin, dass das Programm NIE unter Linux/macOS/... verwendet wird.
Re: Formulare und deren Namen
Eine Unit hat in Lazarus zwei Namen:
- den Dateinamen: den siehst du im Explorer. Wiegesagt, es ist ratsam, den bei der Schreibweise in Kleinbuchstaben zu belassen.
- den Unitnamen: der steht im Kopf der Unit. Das ist üblicherweise in der Schreibweise, die beim Speichern der Datei gewählt wurde. Also, wenn du eine Unit als "uMain.pas" gespeichert hast, erscheint hier "unit uMain"; im Explorer dagegen erscheint in der Defaulteinstellungen "umain.pas".
-
- Lazarusforum e. V.
- Beiträge: 317
- Registriert: So 5. Mai 2019, 16:52
- OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
- CPU-Target: x86_64, i386
- Wohnort: Bayreuth
Re: Formulare und deren Namen
Nein, da gibt es kein Copyright drauf. Das war die Konvention an meiner Schule an der ich die Ausbildung gemacht habe für VisualBasic-Formulare. Das ist einfach so drinnen. Du bist hier aber frei. Du kannst es auch "Fenster" nennen...
cu tb
Tipp für PostgreSQL: www.pg-forum.de
-
- Beiträge: 843
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Formulare und deren Namen
Für mich fällt das unter Programmierstil und unter die sogenannte Ungarische Notation. Hat noch niemandem geschadet sich in etwa daran zu halten.
Das erleichtert mir den Umgang mit Namen und Variablen weil man nach einiger Zeit schnell sieht was man da gerade in der Hand hat.
z.B.
fMain.pas .... Dateiname für das Hauptformular
fmain ... heisst auch die Unit (unit fmain; )
frmMain .... wäre der Name des Hauptformulars (TfrmMain = class(TForm))
iAnzahl eine integer Zahl
slMeineStrings eine Stingliste
so in der Art halt
- kupferstecher
- Beiträge: 422
- Registriert: Do 17. Nov 2016, 11:52
Re: Formulare und deren Namen
Die automatische Umbennenung finde ich eine ziemliche Zumutung ("Bevormundung"). Die Unübersichtlichkeit in der Dateistruktur ist für mich der ausschlaggebende Grund die Funktion auszuschalten. Trotzdem gibt das ab und zu Probleme, bspw. bei der Neuinstallation von Lazarus oder wenn noch alte Dateien mit forcierter Kleinschreibung rumfahren.
Was bei der Verwendung von Groß- und Kleinschreibung im Dateinamen passieren kann, ist dass unter Linux die Unit nicht gefunden wird, wenn man sich im Quellcode beim "uses" nicht genau an die Groß-und Kleinschreibung hält. Unter Windows passiert nichts, weil die Groß- und Kleinschreibung dort eh nicht unterschieden wird.
Der FPC sucht immer auch unter dem Namen in Nur-Kleinschreibung, deshalb ist man durch die erzwungene Kleinschreibung unter Linux dann sicher.
Was bei der Verwendung von Groß- und Kleinschreibung im Dateinamen passieren kann, ist dass unter Linux die Unit nicht gefunden wird, wenn man sich im Quellcode beim "uses" nicht genau an die Groß-und Kleinschreibung hält. Unter Windows passiert nichts, weil die Groß- und Kleinschreibung dort eh nicht unterschieden wird.
Der FPC sucht immer auch unter dem Namen in Nur-Kleinschreibung, deshalb ist man durch die erzwungene Kleinschreibung unter Linux dann sicher.
-
- Beiträge: 732
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: Formulare und deren Namen
Es sind ja doch einige Informationen hier geflossen.
dafür möchte ich mich erstmal bei euch bedanken.
@fliegermichl:
eine "u" hinten dran finde ich okay,
aber Du benennst die Formulare also auch um. Am Anfang habe ich immer das FormX gelassen.
so gross sind meine Programme nun auch nicht, dass es zu größeren Problemen führen könnte.
@wp_xyz:
Wenn man bei Linux anscheinend nur Kleinbuchstaben verwenden darf, gibt das natürlich nicht wirklich Sinn
die Dateien nach meinem Stil umzubenennen. Dann ist nämlich vorbei mit plattformunabhängig, stimme ich Dir vollkommen zu.
Das wuste ich garnicht, da ich noch nie mit Linux zu tun hatte. Seit ca. 35 Jahre Windows Qäulerei...
Mit den Unit Namen schaue ich mir gleich nochmal genauer an. Danke Dir für die ausführliuche Info.
@Ich934:
Okay, dann werde ich "frm" bevorzugen. Klingt für mich sehr plausibel.
@charlytange:
Das es eine "ungarische Notation gibt" kannte ich auch noch nicht,
aber ohne es zu wissen, habe ich mich schon ewig annähernd daran sogar gehalten.
Vermutlich weil ich auch öfters und gerne in fremden Code gestöbert habe, gewöhnt man sich das automatisch an.
Danke für die Info. Habe mir das grad mal bei google genauer angesehen.
Das bestätigt meinen Programmierstil.
@kupferstecher.
auch hier scheint es also eine besondere Eigenschaft von Linux zu sein, dass die Schreibweise des Unit Namens exakt übereinstimmen muss.
Ich fand das ja immer so besonders, das man bei Pascal eben nicht auf die Schreibweise achten muss.
Mit der Namensübereinstimmung kenne ich ja von "C"
Ich hatte vor einiger Zeit ein recht großes "C"Projekt transportiert, weil ich die Entwicklungsumgebung von
IAR auf LPCxpresso (basierend auf GNU Tools) umgestellt habe.
Es hatte "eeeeeetwas" gedauert bis ich dahinter kam, warum mein Compilat nicht funktionierte.
Bei IAR war es egal ob meine Datei .C ode .c heisst.
Bei der neuen Umgebung wurden aber Dateien .C (also das Grosse C wie bei Conrad) nicht mitcompiliert,
damit habe ich nicht gerechnet....Das grosse .C ist wohl für C++ reserviert.
Also auch eine Vorschrift, wie die Dateien benannt werden müssen, vermutlich sogar unabhängig vom Betriebssystem.
Habt Dank für eure Teilnahme, ich werde jetzt mein Konzept etwas anpassen bevor mein Projekt zu gross wird
und wünsche euch ein schönes Wochenende.
[edit]
Ja wp_xyz: das funktioniert wie Du es beschrieben hast, das habe ich grad ausprobiert:
Der Unitname im Quelltext wird entsrechend der Gross Kleinschreibung übernommen.
Der Dateiname selbst ist dann nur in Kleinbuchstaben.
Siro
dafür möchte ich mich erstmal bei euch bedanken.
@fliegermichl:
eine "u" hinten dran finde ich okay,
aber Du benennst die Formulare also auch um. Am Anfang habe ich immer das FormX gelassen.
so gross sind meine Programme nun auch nicht, dass es zu größeren Problemen führen könnte.
@wp_xyz:
Wenn man bei Linux anscheinend nur Kleinbuchstaben verwenden darf, gibt das natürlich nicht wirklich Sinn
die Dateien nach meinem Stil umzubenennen. Dann ist nämlich vorbei mit plattformunabhängig, stimme ich Dir vollkommen zu.
Das wuste ich garnicht, da ich noch nie mit Linux zu tun hatte. Seit ca. 35 Jahre Windows Qäulerei...
Mit den Unit Namen schaue ich mir gleich nochmal genauer an. Danke Dir für die ausführliuche Info.
@Ich934:
Okay, dann werde ich "frm" bevorzugen. Klingt für mich sehr plausibel.
@charlytange:
Das es eine "ungarische Notation gibt" kannte ich auch noch nicht,
aber ohne es zu wissen, habe ich mich schon ewig annähernd daran sogar gehalten.
Vermutlich weil ich auch öfters und gerne in fremden Code gestöbert habe, gewöhnt man sich das automatisch an.
Danke für die Info. Habe mir das grad mal bei google genauer angesehen.
Das bestätigt meinen Programmierstil.
@kupferstecher.
auch hier scheint es also eine besondere Eigenschaft von Linux zu sein, dass die Schreibweise des Unit Namens exakt übereinstimmen muss.
Ich fand das ja immer so besonders, das man bei Pascal eben nicht auf die Schreibweise achten muss.
Mit der Namensübereinstimmung kenne ich ja von "C"
Ich hatte vor einiger Zeit ein recht großes "C"Projekt transportiert, weil ich die Entwicklungsumgebung von
IAR auf LPCxpresso (basierend auf GNU Tools) umgestellt habe.
Es hatte "eeeeeetwas" gedauert bis ich dahinter kam, warum mein Compilat nicht funktionierte.
Bei IAR war es egal ob meine Datei .C ode .c heisst.
Bei der neuen Umgebung wurden aber Dateien .C (also das Grosse C wie bei Conrad) nicht mitcompiliert,
damit habe ich nicht gerechnet....Das grosse .C ist wohl für C++ reserviert.
Also auch eine Vorschrift, wie die Dateien benannt werden müssen, vermutlich sogar unabhängig vom Betriebssystem.
Habt Dank für eure Teilnahme, ich werde jetzt mein Konzept etwas anpassen bevor mein Projekt zu gross wird
und wünsche euch ein schönes Wochenende.
[edit]
Ja wp_xyz: das funktioniert wie Du es beschrieben hast, das habe ich grad ausprobiert:
Der Unitname im Quelltext wird entsrechend der Gross Kleinschreibung übernommen.
Der Dateiname selbst ist dann nur in Kleinbuchstaben.
Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2640
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Formulare und deren Namen
Bennungssystem meinerseits für das Projekt Super-Duper-Software.
Hauptfenster
Einstellungsfenster
Hauptfenster
- Name: MainForm
- Unitname: SuperDuperSoftware.Forms.MainForm
- Dateiname: ./forms/superdupersoftware.forms.mainform.pas
Einstellungsfenster
- Name: OptionsForm
- Unitname: SuperDuperSoftware.Forms.OptionsForm
- Dateiname: ./forms/superdupersoftware.forms.optionsform.pas
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2640
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Formulare und deren Namen
Zum Glück kein Kaputtfenster.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 732
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: Formulare und deren Namen
@m.fuchs:
So ganz abwegig ist die Idee garnicht, auch wenn das erstmal etwas gewöhnungsbedürftig aussieht mit den "langen" Namen....
Ich habe grad mal gesucht, wie oft ich die Datei main.c auf der Platte habe. 1315 Einträge....
oder project1.lpr 192 Einträge.
Wenn der Dateiname mal etwas länger ist, schadet das also nicht unbedingt...
Übrigens in den Dateinamen dürfen keine Bindestriche verwendet werden, Unterstriche sind jedoch erlaubt.
Erinnert mich grade an alte DOS Zeiten.
Mehrere Punkte in einem Namen sind aber erlaubt.
So ganz abwegig ist die Idee garnicht, auch wenn das erstmal etwas gewöhnungsbedürftig aussieht mit den "langen" Namen....
Ich habe grad mal gesucht, wie oft ich die Datei main.c auf der Platte habe. 1315 Einträge....
oder project1.lpr 192 Einträge.
Wenn der Dateiname mal etwas länger ist, schadet das also nicht unbedingt...
Übrigens in den Dateinamen dürfen keine Bindestriche verwendet werden, Unterstriche sind jedoch erlaubt.
Erinnert mich grade an alte DOS Zeiten.
Mehrere Punkte in einem Namen sind aber erlaubt.
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Formulare und deren Namen
Das Hauptprogramm heißt wie das Projekt, und so wie die Exe mal heißen wird. Also
datalogger.lpi
datalogger.lpr
=> datalogger.exe oder datalogger für Linux oder datalogger.hex für AVR Controller
Die Units bekommen ein Kürzel zum Projekt, und einen sprechenden Namen.
dl_gui.pas // das Hauptformular und die direkten GUI-Routinen (Create, Close, xxOnClick...)
dl_uart.pas // RS232 Init, Ein- und Ausgabe
dl_config.pas // Programmkonfig laden und sichern, und das Formular für Konfig-Einstellungen
dl_graph.pas // die grafische Aufbereitung der Daten
dl_cvs.pas // Wegspeichern der Daten als Tabelle
oder für AVR Controller
dl_display.pas // LC-Display und Menuführung
dl_sensor.pas // die BME, SHT... Sensoren
dl_twi.pas // Subroutinen für I2C-Schnittstelle
dl_spi.pas // Subroutinen für SPI-Schnittstelle
dl_math.pas // AVR-spezifische Matheroutinen
Warum das Projektkürzel? Ich verwende in verschiedenen Programmen die gleichen Prozeduren, aber mit individuellen Änderungen. Da liegen mal die Pins am AVR Controller anders. Oder jedes Programm speichert natürlich andere Config-Daten. Da möchte ich die Units obwohl sie schon in unterschiedlichen Projektverzeichnissen liegen auch am Namen auseinanderhalten können.
Ich wüßte gar nicht, wie das anders gehen sollte, mit project.lpr und unit1-2-3.pas findet man doch nix wieder.
datalogger.lpi
datalogger.lpr
=> datalogger.exe oder datalogger für Linux oder datalogger.hex für AVR Controller
Die Units bekommen ein Kürzel zum Projekt, und einen sprechenden Namen.
dl_gui.pas // das Hauptformular und die direkten GUI-Routinen (Create, Close, xxOnClick...)
dl_uart.pas // RS232 Init, Ein- und Ausgabe
dl_config.pas // Programmkonfig laden und sichern, und das Formular für Konfig-Einstellungen
dl_graph.pas // die grafische Aufbereitung der Daten
dl_cvs.pas // Wegspeichern der Daten als Tabelle
oder für AVR Controller
dl_display.pas // LC-Display und Menuführung
dl_sensor.pas // die BME, SHT... Sensoren
dl_twi.pas // Subroutinen für I2C-Schnittstelle
dl_spi.pas // Subroutinen für SPI-Schnittstelle
dl_math.pas // AVR-spezifische Matheroutinen
Warum das Projektkürzel? Ich verwende in verschiedenen Programmen die gleichen Prozeduren, aber mit individuellen Änderungen. Da liegen mal die Pins am AVR Controller anders. Oder jedes Programm speichert natürlich andere Config-Daten. Da möchte ich die Units obwohl sie schon in unterschiedlichen Projektverzeichnissen liegen auch am Namen auseinanderhalten können.
Ich wüßte gar nicht, wie das anders gehen sollte, mit project.lpr und unit1-2-3.pas findet man doch nix wieder.