Namen für neue Units vergeben

Für Fragen rund um die Ide und zum Debugger
Antworten
braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Namen für neue Units vergeben

Beitrag von braunbär »

Wie geht man eigentlich am besten vor, wenn man zu einem bestehenden Projekt eine neue Formular-Unit erstellt. So, wie ich es jetzt mache, bekommt die immer standardmäßig den Namen Unit1, und das Formular bekommt den Namen TForm1.
Das muss man erst im Quelltext ausbessern, und der neue Filename wird überhaupt erst nach dem Abspeichern sichtbar.
Gibt es irgend eine Möglichkeit, gleich beim Erstellen den Unit-Wunschnamen zu vergeben, sodass dann auch der Name der Form gleich passt, ohne dass man noch extra im OI an Namen und Caption frickeln muss?

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Namen für neue Units vergeben

Beitrag von Socke »

braunbär hat geschrieben:Das muss man erst im Quelltext ausbessern, und der neue Filename wird überhaupt erst nach dem Abspeichern sichtbar.
Gibt es irgend eine Möglichkeit, gleich beim Erstellen den Unit-Wunschnamen zu vergeben, sodass dann auch der Name der Form gleich passt, ohne dass man noch extra im OI an Namen und Caption frickeln muss?

Die IDE weiß nicht, wie du deine Formulare und Units nennen willst. Hier kannst du gerne ein Addon-On/Packge zu entwickeln, das theoretische Problem besteht aber immer noch darin, herauszufinden, wie das nächste Formular heißen soll.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

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

Re: Namen für neue Units vergeben

Beitrag von wp_xyz »

braunbär hat geschrieben:Wie geht man eigentlich am besten vor, wenn man zu einem bestehenden Projekt eine neue Formular-Unit erstellt. So, wie ich es jetzt mache, bekommt die immer standardmäßig den Namen Unit1, und das Formular bekommt den Namen TForm1.
Das muss man erst im Quelltext ausbessern, und der neue Filename wird überhaupt erst nach dem Abspeichern sichtbar.

Um den Namen einer Unit zu vergeben, muss man sie unter dem entsprechenden Namen abspeichern, idealerweise gleich beim Anlegen der neuen Unit, geht aber auch später. Die IDE ändert dann automatisch die Kopfzeile "unit", sowie die entsprechenden Referenzen in anderen Units. Selber den Quelltext zu ändern, ist der falsche Weg, dadurch schafft man sich nur eine unnötige Beschäftigung für die nächste Stunde...

Der Formularname muss aber noch zusätzlich vergeben werden. Hier macht man die Änderung (so wie bei allen Umbenennungen von Komponenten) im Objekt-Inspektor, nie im Quelltext.

Umbenennungen von Variablennamen u.ä. macht man über die Funktion "Refactoring" > "Bezeichner umbenennen" im Kontextmenü der umzubenennenden Größe, was alle Vorkommnisse abdeckt, auch in Kommentaren.

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Namen für neue Units vergeben

Beitrag von MacWomble »

Etwas vereinfachen kann man das schon, indem man die Einstellungen anpasst:
LazName1.png

Wenn nun neben dem Dateinamen auch noch der Name und die Caption abgefragt würden, wäre das ein deutliches Plus!

Für Komponenten kann man auch nach dem Namen fragen lassen (wobei hier die Frage nach der Caption auch nett wäre, falls vorhanden, z.B. Label, Button etc.):
LazName2.png


Noch ein Gedanke zum Thema:
Für die Komponenten wäre es auch sehr schön, wenn man für jede Komponente eine Namensvorgabe hinterlegen könnte (z.B. btn.., lbl.. etc).
Am besten wäre dies sogar als Prefix sinnvoll:
In einer Definitionsdatei werden die Prefixe nach Wunsch angelegt und können so z.B. firmenintern verteilt werden. (ini-file?)
Dies würde einen gewissen Standard und besser verständlichen Code 'erzwingen'. Für hier nicht definierte Komponenten fällt der Prefix weg.

Bsp. Ini:

Code: Alles auswählen

 
[FilePrefix]
TForm=frm
TDatamodule=dat
TFrame=fra
.
.
 
[CompPrefix]
TButton=btn
TLabel=lbl
TEdit=edt
TDBEdit=dbe
TDBLookupCombobox=dbl
TRXDBLookupCombo=rxdbl
.
.
.
 
 
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: Namen für neue Units vergeben

Beitrag von braunbär »

Das ist schon einmal etwas, danke.

MacWomble hat geschrieben:Wenn nun neben dem Dateinamen auch noch der Name und die Caption abgefragt würden, wäre das ein deutliches Plus!

Ja, das sehe ich auch so. Nachdemm man den vorgeschlagenen Komponentennamen (wie TForm1) und die caption praktisch immer ändern wird, wäre es sehr sinnvoll, die Fragen gleich beim Erstellen der Datei zu stellen.

Prefixe für die Komponententypen zu verwenden, ist m.E. auch durchaus sinnvol, und ich mache das in Regel. Aber die Vorgabe aufzwingen ist wohl nicht unbedingt nötig, und wirklich vereinfachen würde das m.E. eigentlich nichts - oder?

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Namen für neue Units vergeben

Beitrag von MacWomble »

Ich wollte diese ja nicht generell aufzwingen, somdern in einer Ini-Datei verwaltbar haben. So kann sich jeder selbst die Prefixe anpassen oder es eben auch bleiben lassen. Ich verwende immer die selben Prefixe und muss diese jedes mal eintippen und manchmal auch überlegen, was ich für welche Komponente habe. Ein Vordefinition würde das vereinfachen und sicherer machen. Z.B ist es mir schon passiert, dass ich dblrx statt rxdbl verwendet habe. Ok, Denkfehler - aber mit der INI wäre das einfach nicht passiert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Antworten