Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   In grossen units Programmteile finden. (https://www.delphipraxis.net/185512-grossen-units-programmteile-finden.html)

idefix2 18. Jun 2015 00:07

In grossen units Programmteile finden.
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ist etwas, was mich manchmal zur Weissglut gebracht hat. Wenn ein File auch nur 10000 Zeilen lang ist, kann man endlos blättern, bis man eine bestimmte Prozedur gefunden hat (oder man sucht nach dem Namen und vertippt sich dabei, manchmal weiss ich auch nicht mehr genau wie die Prozedur heisst, etc...). Die IDE bietet da nicht wirklich eine brauchbare Unterstützung, zumindest habe ich nichts in der Richtung gefunden.

Um das Problem in den Griff zu bekommen, habe ich mir jetzt ein Autohotkey Skript gebastelt. Die verschiedenen Abschnitte des Programms bekommen Überschriften in diesem Format verpasst:

Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// Formcreate
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

procedure TfrmStromMain.FormCreate(Sender: TObject);
Die Namen der Projektdateien zu den Projekten, mit denen ich gerade arbeite, stehen in einer Ini-Datei (Das brauche ich, um für das Projekt, das gerade in der IDE aktiv ist, das richitge Arbeitsverzeichnis zu finden) :

Code:
[Delphiprojects]
d:\Delphi\PDF\CleverStrom.dproj
d:\Delphi\PDF\InstallCleverStrom.dproj
d:\Delphi\PDF\Mitarbeiter.dproj
d:\Delphi\Fitness\Fitness.dproj
d:\Delphi\Fitness\FitnessAnmeldung.dproj

Wenn ich dann in der IDE Strg-G drücke, zeigt mir das Skript quasi ein Inhaltsverzeichnis des Files an, das ich gerade bearbeite, und ich kann bequem den Abschnitt, der mich interessiert, auswählen.
Dann springt der Cursor direkt unter die gewählte Überschrift.

Das Skript ist für Delphi 2009 konfiguriert, andere Delphi-Versionen werden sicher geringfügige Anpassungen benötigen.

Medium 18. Jun 2015 01:36

AW: In grossen units Programmteile finden.
 
Im Allgemeinen sind solche Monster-Units das Anzeichen für ein schlechtes Klassenkonzept bzw. Code-Design. Idealerweise sollte eine Unit nur eine Klasse beinhalten, und wenn sie dann noch so groß wird, ist es sehr sehr wahrscheinlich, dass die Klasse zu viel in sich vereint, und besser in mehrere zerteilt werden sollte, von denen jede nur kleine, sehr spezifische Aufgaben hat.
Bei Delphi hat man im Vergleich zu anderen Sprachen aber dennoch etwas längere Dateien, da der Deklarationsteil separat und im selben File ist. Damit muss man hier einfach leben.

Ich persönlich finde entsprechende Methoden hauptsächlich dadurch, dass ich an ihren Verwendungsstellen mit Strg-Linksklick direkt dort hin springe, alternativ suche ich sie mir im Deklarationsteil heraus, packe den Cursor in die Zeile, und hüpfe dann mit Strg-Shift-PfeilRunter in die Implementierung. Mit Strg-Shift-PfeilHoch geht's in die Gegenrichtung, wenn es doch nicht die gesuchte war. (Die Strg-Klick-Variante erwischt leider nicht immer die richtige Implementierung bei überladenen Methoden, die zu dem Aufruf passt den ich geklickt habe :roll:)

Aber der beste Rat ist, so unbequem er ist, dass man sich durch Entpflechten seiner Strukturen sowohl selbst als auch seinem Produkt einen riesigen Gefallen tut. Ich musste das auch erst über Jahre verinnerlichen - unter Schmerzen :) (Insbesondere weil ich an und für sich einen mächtigen Groll gegen strahlende Perfektionsapostel ohne Echtweltbezug hege, und daher in solchen Dingen beratungsresistenter als unbedingt erforderlich war...)

jaenicke 18. Jun 2015 04:02

AW: In grossen units Programmteile finden.
 
Es gibt ja Addons wie die CnWizards oder ModelMaker Code Explorer, mit denen man auch in solchen Monsterunits navigieren kann.

Einen Gefallen tut man sich mit solchen Units aber sicher nicht...
Medium hat es schon auf den Punkt gebracht, deshalb belasse ich es mal dabei.

Popov 18. Jun 2015 04:51

AW: In grossen units Programmteile finden.
 
Liste der Anhänge anzeigen (Anzahl: 2)
Schon das kleine Fenster links aufgefallen? Es listet alle Prozeduren, Funktionen, globale Variablen und Konstanten, sowie genutzte Units auf. Damit kann man sich gut in großen Units zurechtfinden.

bcvs 18. Jun 2015 06:54

AW: In grossen units Programmteile finden.
 
Ich nehme dafür die Procedure List von GExperts. Da kann man auch klassenübergreifend nach Methoden suchen, deren Namen man nur ungefähr kennt. Außerdem zeigt es wahlweise den Code schon an, bevor man hinspringt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 Uhr.

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