Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Refactoring: Procedure in andere Unit verschieben (https://www.delphipraxis.net/187709-refactoring-procedure-andere-unit-verschieben.html)

Harry Stahl 25. Dez 2015 11:59

Refactoring: Procedure in andere Unit verschieben
 
Will meinen Source-Code mal ein wenig besser strukturieren.

Aus reiner Bequemlichkeit sind hin und wieder globale Prozeduren oder Funktionen in Formdateien gelandet, die eigentlich besser in einer separaten Unit aufgehoben wären.

Sehe ich das richtig, dass Delphi hierfür kein Refactoring anbietet?

Ich würde also gern den Procedure-Namen in der Form-Unit auswählen können und dann mit einem Befehl wie "Verschiebe in Unit [Auswahl der Unit]" incl. der Option "Funktion in Interface-Abschnitt der Unit eintragen" die Procedure verschieben (und vielleicht noch die Option "Unit im Interface-Abschitt der aktuellen Form-Unit eintragen" auswählen.

Habe hier nichts gefunden. Oder habe ich etwas übersehen? Der Befehl "Verlagern" taugt dazu nicht, es kommt nur die Fehlermeldung "Sie können nur statistische Methoden in eine andere Klasse oder eine Klasse in einem anderen Namespace verlagern".

Harry Stahl 26. Dez 2015 15:39

AW: Refactoring: Procedure in andere Unit verschieben
 
Keiner eine Idee / Erfahrung / Tipp?:(

haentschman 26. Dez 2015 15:42

AW: Refactoring: Procedure in andere Unit verschieben
 
Moin...8-)
Ich hoffe es richtig verstanden zu haben... Ich denke mit Copy/Paste wärst du schon fertig... :P

Harry Stahl 26. Dez 2015 16:33

AW: Refactoring: Procedure in andere Unit verschieben
 
Das geht, aber ich bin natürlich auf der Suche nach einer erleichternden Methode.

Gerade wenn man einige Funktionen verschieben möchte, wäre es doch nett, wenn man da entsprechende programmatische Unterstützung hätte.

haentschman 26. Dez 2015 16:54

AW: Refactoring: Procedure in andere Unit verschieben
 
:P Na so oft muß man das ja nicht machen...

Harry Stahl 26. Dez 2015 17:17

AW: Refactoring: Procedure in andere Unit verschieben
 
Aber gerade jetzt schon, wo ich wegen ziemlich vieler Neustrukturierung von Source-Code und Oberfläche (Cross-Compile-Projekte) ganz viel Source aus den Forms verschieben will/muss, da wäre es schon eine Hilfe so was zu haben.

dataspider 27. Dez 2015 09:51

AW: Refactoring: Procedure in andere Unit verschieben
 
Ich kenne nur den Modelmaker CodeExplorer...
Dort kann man mit STRG + X STRG + V etc. flink ans Ziel kommen.

Frank

Harry Stahl 27. Dez 2015 14:42

AW: Refactoring: Procedure in andere Unit verschieben
 
Ich habe mir mal die Demoversion installiert. Ist auf jeden Fall ein mächtiges Tool!

Aber die von mir gewünschte Funktion ist leider nicht vorhanden. Man kann nur eine Procedure in eine andere Klasse oder eine Formprozedur in ein normale Prozedur innerhalb der aktuellen Form umwandeln, nicht aber direkt in eine andere Unit verschieben (und da müsste das Tool dann noch die erforderlichen Änderungen machen, wie Eintrag in den Interface-Abschnitt, Einbindung der Unit in den Uses-Abschnitt der aktuellen Form, usw.).

Aber vielen Dank für den Tipp.:thumb:

Uwe Raabe 27. Dez 2015 15:41

AW: Refactoring: Procedure in andere Unit verschieben
 
Zitat:

Zitat von Harry Stahl (Beitrag 1325365)
Aber die von mir gewünschte Funktion ist leider nicht vorhanden. Man kann nur eine Procedure in eine andere Klasse oder eine Formprozedur in ein normale Prozedur innerhalb der aktuellen Form umwandeln, nicht aber direkt in eine andere Unit verschieben (und da müsste das Tool dann noch die erforderlichen Änderungen machen, wie Eintrag in den Interface-Abschnitt, Einbindung der Unit in den Uses-Abschnitt der aktuellen Form, usw.).

Verschieben per Drag-and-Drop geht nicht, da das Tool immer nur innerhalb der aktuellen Unit arbeitet. Aber dataspider sprach ja auch von Strg-X, StrgV (gemeint ist innerhalb des ModelMaker Fensters) und das geht schon Unit-übergreifend. Die einzelnen Schritte sind somit:

Selektieren der Unit im ModelMaker-Fenster (im Module-Abschnitt, wenn sie nicht zu einer Klasse gehört), Ausschneiden (Strg-X), Unit wechseln, nun ebenfalls im ModelMaker-Fenster einfügen (Strg-V).

Zugegeben, bei Modul-Methoden ist das nur wenig effizienter als ein simples Cut-Paste im Source-Editor, aber sonst ist das schon deutlich komfortabler.

Harry Stahl 27. Dez 2015 16:04

AW: Refactoring: Procedure in andere Unit verschieben
 
Danke Uwe. Per Zufall habe ich gerade so etwas ähnliches gefunden, erinnerte mich an die Modellansicht von Delphi.

Hier geht das "Verschieben" auch tatsächlich per cut and paste von Form-Prozeduren in einfache Units.

Das einzige was mich im Moment stört ist, dass Delphi die eingefügte Prozedur neu formatiert. Kann man das irgendwie ausschalten? Dann könnte ich damit durchaus schon was anfangen.

Den Eintrag in den Interface-Abschnitt müsste ich zwar selbst machen, aber das geht noch vom Aufwand.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 Uhr.
Seite 1 von 2  1 2      

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