AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE In grossen units Programmteile finden.
Thema durchsuchen
Ansicht
Themen-Optionen

In grossen units Programmteile finden.

Ein Thema von idefix2 · begonnen am 18. Jun 2015 · letzter Beitrag vom 18. Jun 2015
Antwort Antwort
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#1

In grossen units Programmteile finden.

  Alt 18. Jun 2015, 00:07
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.
Miniaturansicht angehängter Grafiken
myscript.jpg  
Angehängte Dateien
Dateityp: zip Delphiahk.zip (1.005 Bytes, 0x aufgerufen)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: In grossen units Programmteile finden.

  Alt 18. Jun 2015, 01:36
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 )

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...)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.347 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: In grossen units Programmteile finden.

  Alt 18. Jun 2015, 04:02
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: In grossen units Programmteile finden.

  Alt 18. Jun 2015, 04:51
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.
Miniaturansicht angehängter Grafiken
proz.png   classes.png  
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
668 Beiträge
 
Delphi 12 Athens
 
#5

AW: In grossen units Programmteile finden.

  Alt 18. Jun 2015, 06:54
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 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