Delphi-PRAXiS
Seite 3 von 25     123 4513     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   UnitOptimizer (https://www.delphipraxis.net/196493-unitoptimizer.html)

stahli 27. Aug 2018 11:50

AW: UnitOptimizer
 
Einen Automatismus kann ich mir da nicht vorstellen.

Was möglich wäre, man könnte Wertepaare einrichten:
Zitat:

Winapi.Windows<->Windows
Vcl.Forms<->Forms
Mit einem Hotkey könnte man alle Units in uses-Klauseln umswitchen.

Man könnte das auch noch weiter ausbauen:
Zitat:

Winapi.Windows{VCL}<->Windows{old}
Vcl.Forms{VCL}<->Forms{old}<->FMX.Forms{FMX}
Nach Wahl eines Hotkeys wird eine Auswahl
VCL
old
FMX
angezeigt und man kann eines davon anwählen.
Alle Unit-Versionen in den uses-Klauseln würden dann durch die entsprechende Variante ersetzt werden.
Man müsste halt einmal entsprechende Paarungen definieren.

Das war nicht das Ziel meines Optimizers aber eine solche Lösung wäre mit umsetzbar.

KodeZwerg 27. Aug 2018 11:56

AW: UnitOptimizer
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1411710)
Soweit ich weiß, kann GExperts aber auch den umgekehrten Weg. Ich selbst sehe allerdings keine Notwendigkeit für diesen Rückweg, da ich grundsätzlich nur nach vorne portiere.

Das teste ich gleich mal, anscheinend genau zur Richtigen Zeit das es eine sehr aktuelle Version gibt: 2018-08-05

Danke für diesen Hinweis! :thumb:

Delphi.Narium 27. Aug 2018 12:03

AW: UnitOptimizer
 
Zitat:

Zitat von stahli (Beitrag 1411711)
Einen Automatismus kann ich mir da nicht vorstellen.

Doch, eigentlich schon. Alte Delphis erlauben keinen Punkt im Namen einer Unit.
Wenn es also im Uses Unitnamen mit Punkt gibt, jeweils alles vor bis einschließlich letztem Punkt entfernen.

KodeZwerg 27. Aug 2018 12:21

AW: UnitOptimizer
 
Also mein Delphi 7 konnte auch mit Punkt im Unit Namen! Delphi 2009 auch!

edit
Beispiel:
Dieses mini Sample von Schokohase zum Beispiel, ich musste halt nur von original Delphi Units den Namespace entfernen, die selfmade Units habe ich vom Namen her mit Punkt drinnen behalten.

Also ein "entferne alles was nen Punkt besitzt" wäre da fatal.

Uwe Raabe 27. Aug 2018 12:42

AW: UnitOptimizer
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1411713)
Alte Delphis erlauben keinen Punkt im Namen einer Unit.

Generics.Collections
Generics.Defaults

Uwe Raabe 27. Aug 2018 12:47

AW: UnitOptimizer
 
Zitat:

Zitat von stahli (Beitrag 1411711)
Einen Automatismus kann ich mir da nicht vorstellen.

Im MMX Code Explorer werden zunächst anhand der Werte in den Projekt-Optionen alle Unit Aliase aufgelöst und daraus resultierende Doubletten entfernt (z.B. WinTypes, WinProcs). Dann wird für jede Unit in der so bereinigten Uses-Clause im Suchpfad/Bibliothekspfad gesucht. Falls nicht gefunden, werden sämtliche angegebenen Unit-Namespaces probiert bis einer passt. Der umgekehrte Weg könnte ähnlich laufen.

raller09 6. Sep 2018 08:57

AW: UnitOptimizer
 
Moin,

ich habe mir die Funktion zum Erweitern der "Ergänzung des Unit-Namespace" sowohl in MMX wie auch in GEExperts angesehen. Super Funktion + scheint gut zu funktionieren!


https://www.uweraabe.de/Blog/2018/05...eature-in-mmx/
https://blog.dummzeuch.de/2018/08/04...r-in-gexperts/


Gibt es in einem der beiden Programmen die Funktionalität, das "für alle Dateien des Projektes" oder "für ein Verzeichnis" oder "für eine Liste von Dateien" gleichzeitig aufzurufen?


Ich möchte mal testen, ob diese Auflösung Einfluss auf die Kompilierungs-Geschwindigkeit in unserem Projekt hat ...
Sonst muss ich mich mal durch einige Dateien (> 500) klicken...


Danke,

dummzeuch 6. Sep 2018 09:05

AW: UnitOptimizer
 
Zitat:

Zitat von raller09 (Beitrag 1412547)
ich habe mir die Funktion zum Erweitern der "Ergänzung des Unit-Namespace" sowohl in MMX wie auch in GEExperts angesehen. Super Funktion + scheint gut zu funktionieren!

Gibt es in einem der beiden Programmen die Funktionalität, das "für alle Dateien des Projektes" oder "für ein Verzeichnis" oder "für eine Liste von Dateien" gleichzeitig aufzurufen?

Für GExperts will ich das gerade nicht implementieren, da die Gefahr, sich dabei das komplette Projekt zu zerschießen ziemlich hoch ist.

Du kannst das aber gerne selbst tun, der Source ist ja verfügbar.

twm

Uwe Raabe 6. Sep 2018 10:01

AW: UnitOptimizer
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von raller09 (Beitrag 1412547)
Gibt es in einem der beiden Programmen die Funktionalität, das "für alle Dateien des Projektes" oder "für ein Verzeichnis" oder "für eine Liste von Dateien" gleichzeitig aufzurufen?

Es gibt eine Kommandozeilenversion, mit der das alles angefangen hat. Die ist eigentlich nicht für die Veröffentlichung aufbereitet und einiges ist da sicher noch verbesserungsfähig. Also alles ohne Gewähr.

Die Konfigurationsdatei solltest du auf dein Projekt anpassen (insbesondere den Suchpfad und die GroupNames) und mit dem -c Parameter auf der Kommandozeile übergeben. Das könnte dann in etwa so aussehen:
Code:
UsesCleaner -c:"c:\MyProjectPath\UsesCleaner.cfg" "c:\MyProjectPath\*.pas"
Es können auch mehrere Wildcard-Ausdrücke angegeben werden und wenn du noch einen Parameter -s spendierst, werden auch Unterverzeichnisse durchsucht.

raller09 6. Sep 2018 12:47

AW: UnitOptimizer
 
Moin,

vielen Dank für die Rückmeldung.


Zitat:

Zitat von dummzeuch (Beitrag 1412548)
Für GExperts will ich das gerade nicht implementieren, da die Gefahr, sich dabei das komplette Projekt zu zerschießen ziemlich hoch ist.
Du kannst das aber gerne selbst tun, der Source ist ja verfügbar.

wollte ich im ersten Schritt vermeiden, aber kann ich mir ggf. ansehen.

Die angesprochen Probleme habe ich gerade auch mit der Sortierung der uses + der Funktion von Herrn Raabe aus MMX schon festgestellt:

Die dort eingestellte Sortierungs-Reihenfolge der Uses sorgt z.B. für einen Parameter-Fehler in "DeleteFile", da "PWideChar <> TFileName"

Ich hatte implizit System.SysUtils.DeleteFile genutzt, welches durch die geänderte Uses zu "Winapi.Windows.DeleteFile" wurde...

Wie war noch mal die Reihenfolge bei gleichen Funktions/Prozedur-Namen in verschiedenen Units. Ich meine Uses von unten nach oben, korrekt?


In welcher Reihenfolge werden die Namespaces Aufgelöst? Ich würde von links nach rechts tippen, ist das korrekt?

Zitat:

Zitat von Uwe Raabe (Beitrag 1412554)
Es gibt eine Kommandozeilenversion, mit der das alles angefangen hat. Die ist eigentlich nicht für die Veröffentlichung aufbereitet und einiges ist da sicher noch verbesserungsfähig. Also alles ohne Gewähr.

Vielen Dank für das Tool, damit teste ich mal. Ich werde die Sortier-Reihenfolge + Gültigkeitsbereichsnamen gleich meiner Projekt-Einstellung setzen.

Ich werde mir das bis zum Wochenende mal mit unserem Programm angesehen haben + gebe dann eine Rückmeldung.


Danke,


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 Uhr.
Seite 3 von 25     123 4513     Letzte » 

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