Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi procedures function in Code sortieren ? (https://www.delphipraxis.net/113246-procedures-function-code-sortieren.html)

EccoBravo 5. Mai 2008 08:51


procedures function in Code sortieren ?
 
Hallo,

kann ich procedures unds functions im Code nach gewissen Kriterien automatisch sortieren ?
Dieses soll mir dann das Korrigieren des Codes per PrintOut einfacher machen.

(RAD 2007, Architect)

Wenn ja - wie ?

Gruß

E.B.

RavenIV 5. Mai 2008 09:09

Re: procedures function in Code sortieren ?
 
Wenn Du die procedures/functions automatisch einfügen lässt, dann sollte die IDE das alphabetisch sortieren.

Geh in die Deklaration der Klasse.
Dort schreibst Du (z.B. in private):
procedure test;
Dann drückst Du gleichzeitig <STRG> + <CTRL> + <C>
Nun schreibt die IDE irgendwo bei Implementation:
procedure myClass.test;
begin
end;


Genauso ist es, wenn Du "Eventfunktionen" (z.B. OnClick) erstellen lässt.
Im Formular einen Button auswählen.
Im Objectinspector auf "Ereignisse" und dort z.B. auf "OnClick" klicken.
Dann bekommst Du:
procedure mxClass.MyButtonClick(...);
begin
end;


Ich hab aber noch keinen Assistenten gefunden, der die Sortierung nachträglich durchführen kann.
Oder einen Assistenten, bei dem man einstellen kann, nach welchen Kriterien man sortiert haben will.

EccoBravo 5. Mai 2008 09:26

Re: procedures function in Code sortieren ?
 
Danke danke,

so mache ich es ja auch schon eine Weile, alphabetisch sortierte proc/functs innerhalb einer Klasse.
Aber eine inhaltliche Sortierung macht aber das korrigieren im Printout ebend leichter,
Wenigstens bleibt inhaltlich die klassenbezogene Gruppierung, sinnvoll für die seltenen Fälle mehrklassiger Units.
Beim Sortieren dachte ich so an Tools wie Refactoring, GExpert usw.

aber was nicht ist ..,.

Danke Grüße usw
E. B.

grenzgaenger 5. Mai 2008 09:43

Re: procedures function in Code sortieren ?
 
Das Problem wird wohl da sein, dass er im Quellcode gar nicht sortieren darf. Da ansonsten die Compilierung/Ablauf/Logik nicht mehr gewährleistet ist. Für deinen Bedarf kannst dich mal in Richtung Dokumentartools umgucken oder du schreibst dir so 'n kleinen Lister schnell selbst.

Wichtig dabei ist, dass der Code nicht abgespeichert werden darf!

<HTH> GG

FAlter 5. Mai 2008 09:56

Re: procedures function in Code sortieren ?
 
Hi,

Was ist denn das für eine Tastenkombination?

Zitat:

Zitat von RavenIV
Dann drückst Du gleichzeitig <STRG> + <CTRL> + <C>

Ich dachte Strg+c / Ctrl+C wäre kopieren, und es macht keinen Unterschied, ob ich eine oder beide Strg-Tasten drücke.

Eine Tastenkombination mit der genannten Funktionalität würde mich allerdings interessieren. Ich hab es eben mit Strg+Umschalt+C probiert und Strg+alt+C, aber immer keine Reaktion.

Mfg
FAlter

Medium 5. Mai 2008 10:06

Re: procedures function in Code sortieren ?
 
STRG+SHIFT+C ist die richtige Kombi, und erzeugt, wenn im Deklarationsteil einer Klasse gedrückt, Methodenrümpfe für alle Methoden die noch keine Entsprechung im Implementationsteil haben. Netter Zeitsparer.

RavenIV 5. Mai 2008 10:10

Re: procedures function in Code sortieren ?
 
Zitat:

Zitat von FAlter
Hi,

Was ist denn das für eine Tastenkombination?

Zitat:

Zitat von RavenIV
Dann drückst Du gleichzeitig <STRG> + <CTRL> + <C>


Es muss heissen:
<STRG> + <UMSCHALT> + <C>

Und ich mach auch immer manuelles Sortieren.
So hab ich z.B. alle Form-Methoden (Create, Show, Close, usw) gerne zusammen als "Block", dann alle Callbacks (OnClick, usw) und dann alle eigenen Funktionen (MachWas, MachWasAnderes, usw.).

RavenIV 5. Mai 2008 10:12

Re: procedures function in Code sortieren ?
 
Zitat:

Zitat von Medium
STRG+SHIFT+C ist die richtige Kombi, und erzeugt, wenn im Deklarationsteil einer Klasse gedrückt, Methodenrümpfe für alle Methoden die noch keine Entsprechung im Implementationsteil haben. Netter Zeitsparer.

Funktioniert übrigens auch anderstrum.
Dann wird die Deklaration in private angelegt.

FAlter 5. Mai 2008 10:14

Re: procedures function in Code sortieren ?
 
Hi,

danke.

Die scheint aber erst ab 2006 zu funktionieren, oder? Habs probiert, hat nur in TurboDelphi geklappt.

Mfg
FAlter

Muetze1 5. Mai 2008 10:15

Re: procedures function in Code sortieren ?
 
Zitat:

Zitat von FAlter
Die scheint aber erst ab 2006 zu funktionieren, oder? Habs probiert, hat nur in TurboDelphi geklappt.

Nein, mindestens ab Delphi 4. Ich benutze es täglich in D5 und bin mir sicher auch schon vor der Umstellung in Delphi 4.

RavenIV 5. Mai 2008 10:24

Re: procedures function in Code sortieren ?
 
Zitat:

Zitat von FAlter
Die scheint aber erst ab 2006 zu funktionieren, oder? Habs probiert, hat nur in TurboDelphi geklappt.

Das funktioniert bei mir im D7 schon.
Ein älteres Delphi hab ich grad nicht zur Hand.

Medium 5. Mai 2008 10:38

Re: procedures function in Code sortieren ?
 
Auch Getter und Setter für Properties werden erzeugt, sowie private Variablen für Properties die noch nicht da sind.

Dass das auch umgekehrt geht wusste ich noch garnicht, hübsch :)

EccoBravo 5. Mai 2008 10:45

Re: procedures function in Code sortieren ?
 
wenn auch der Schreibfehler,

ich hab das auch schon richtig verstanden (kenne diesen Trick)

Ctrl + Shift + C

Kontextbezogenes Verstehen ist doch eine starke Eigenschaft.
Da kann noch so ein (unbeabsichtigt) verstümmelter Text stehen, der beabsichtigte Inhalt schlägt regelrecht ins Auge.
Die Umkehrung kann aber mitunter tückisch sein....!!

Also nochmals Danke für das KeyStorming, vielleicht gibt es irgendwann mal 'sone' Funktion

Grüße

E. B.

himitsu 5. Mai 2008 11:08

Re: procedures function in Code sortieren ?
 
Das problem ist nur, daß erstmal soeine Funktion nicht weiß wie du es gern hättest ... alphabetische Sortierung wäre och einfach und solange eine Forwarddeklaration (im Interface-Abschnitt, oder in Form einer Klasse) existiert auch soweit unproblematisch, aber sobald kein Forward deklariert ist, kann es passieren, daß die Deklarationsreinfolge einfluß auf die Aufrufbarkeit (z.B. Funktion noch nicht definiert, da sie nach der Sortierung erst später auftaucht, also weiter unten steht)

und soeine logische Sortierung ... wiher soll der Sortierer wissen was z.B. eine Callback-Funktion ist und was nicht?

PS: ich hab abundzu auch mal Kommentare rumstehen, welche zu einer oder mehreren Funktionen gehören ... wo sollen die denn dann hin?
vorallem ein "Trenn"-Kommentar zwischen Funktionsgruppen würde probleme bereiten :?

RavenIV 5. Mai 2008 11:16

Re: procedures function in Code sortieren ?
 
Zitat:

Zitat von himitsu
Das problem ist nur, daß erstmal soeine Funktion nicht weiß wie du es gern hättest ...

Das könnte man konfigurierbar machen.

Zitat:

Zitat von himitsu
alphabetische Sortierung wäre och einfach und solange eine Forwarddeklaration (im Interface-Abschnitt, oder in Form einer Klasse) existiert auch soweit unproblematisch, aber sobald kein Forward deklariert ist, kann es passieren, daß die Deklarationsreinfolge einfluß auf die Aufrufbarkeit (z.B. Funktion noch nicht definiert, da sie nach der Sortierung erst später auftaucht, also weiter unten steht)

Wieso hast Du überhaupt Funktionen, für die es keine Forward-Deklaration gibt?
unschön :-(

Zitat:

Zitat von himitsu
und soeine logische Sortierung ... wiher soll der Sortierer wissen was z.B. eine Callback-Funktion ist und was nicht?

Das könnte man im dfm nachschauen.
Wäre halt ein Wenig Aufwand zum Parsen...

Zitat:

Zitat von himitsu
PS: ich hab abundzu auch mal Kommentare rumstehen, welche zu einer oder mehreren Funktionen gehören ... wo sollen die denn dann hin?
vorallem ein "Trenn"-Kommentar zwischen Funktionsgruppen würde probleme bereiten :?

Die Kommentare, die zu einer Funktion gehören, müssen natürlich mitgenommen werden.
Trenn-Kommentare kannst Du dann ja wieder einfügen lassen von der Sortier-Funktion.

Probleme sind dazu da, dass sie gelöst werden.

himitsu 5. Mai 2008 11:42

Re: procedures function in Code sortieren ?
 
Zitat:

Zitat von RavenIV
Wieso hast Du überhaupt Funktionen, für die es keine Forward-Deklaration gibt?
unschön :-(

weil ich nur Forward's erstelle, wenn es nötig ist und vorallem wenn es eine Function ist, die nur Unit-intern verwendet wird und wo ich garnicht will, daß sie extern aufrufbar ist, dann gibt's keinen Forward ... wozu auch?

Zitat:

Zitat von RavenIV
Das könnte man im dfm nachschauen.
Wäre halt ein Wenig Aufwand zum Parsen...

und was ist mit den CallBack's, welche nicht von der Form aufgerufen werden?

z.B. von nichtvisuellen Komponenten

Zitat:

Zitat von himitsu
Die Kommentare, die zu einer Funktion gehören, müssen natürlich mitgenommen werden.
Trenn-Kommentare kannst Du dann ja wieder einfügen lassen von der Sortier-Funktion.

wird aber schwer für ein Programm zu erkennen sein, was das für Kommentare sind, also wozu sie wirklich gehören :?

Zitat:

Zitat von RavenIV
Probleme sind dazu da, dass sie gelöst werden.

nja, ich hätt schon nix gegen eine Hilfe beim Sortieren, aber ich hab keine Ahnung wie ich dem Programm dann meine "kranken"/menschlichen Wünsche bezüglich eine für Computer unlogischen Sortierung mitteilen soll?

Vorallem da ich meine Funktionen vesuch entprechend ihrer logischen Reinfolge (Aufgabengruppierung), der Aufruf-/Definitionsreinfolge und was weiß ich noch alles sortiere.

PS: ich hab 'ne ... ich würd's mal eigenwillige Codeformatierung
und bisher haben alle Codeverändernten Mittel da irgendwas "kaputtgemacht" :cry:

grenzgaenger 5. Mai 2008 12:43

Re: procedures function in Code sortieren ?
 
Zitat:

Zitat von himitsu
PS: ich hab 'ne ... ich würd's mal eigenwillige Codeformatierung
und bisher haben alle Codeverändernten Mittel da irgendwas "kaputtgemacht" :cry:

mir geht's ähnlich. an meinen quellcode, lass ich keinen codeformater ran :angel2: den nehm ich nur, wenn ein fremder quälcode vorhanden ist, damit man sich einigermassen zurechtfinden kann. mal davon abgesehen, wer korrigiert schon den code auf 'n papier :drunken: was allerdings gut ist, ist ab und an mal 'n listing rauszulassen, da man auf 'n papier schneller den überblick hat... aber da müssten dann auch logische zusammenhänge und einrückungen berücksichtigt werden, z.b. 1. sortierung von funktionen/proceduren, 2. sortierung nach klassen und 3. sortierung der klassen nach methoden ...

aber wie gesagt, zum formatieren würd ich so etwas nie nehmen, zum ausdruck wäre es zu überlegen :-)

für doku kannst ja mal bei Torry nachsehen. vielleicht findest du was passendes.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz