Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Speichern der Projektdateien (https://www.delphipraxis.net/216909-speichern-der-projektdateien.html)

ringli 21. Mär 2025 20:29

Speichern der Projektdateien
 
Hallo,

ist es möglich, bspw. über ein IDE-Plugin, das Speichern der Projektdateien (*.dpr bzw. *.dproj) abzufangen und auf eigenen Funktionen umzuleiten?

Hintergrund der Frage:
Ich würde gerne die Tagging-Funktionen in Directory Opus nutzen. Die Tags werden von Directory Opus scheinbar in den Alternate Data Streams gespeichert. Leider verschwinden die Tags nach jedem Speichern der Projektdateien. Das scheint daran zu liegen das Delphi beim Speichern die Originaldatei komplett löscht und neu anlegt.

Gibt es dazu irgendwelche Ideen / Lösungsvorschläge?

Uwe Raabe 21. Mär 2025 22:26

AW: Speichern der Projektdateien
 
Ja, das geht mit einem IDE-Plugin. Die Details sind aber leider nicht in ein paar Worten zu beschreiben. Im Wesentlichen registriert man einen IOTAIDENotifier, der beim Öffnen und Erstellen eines Projekts einen IOTANotifier und IOTAModuleNotifier dort registriert. Dieser reagiert dann auf die Methoden AfterSave und ModuleRenamed.

Etwas tricky wird es aber, wenn es mehrere solcher Plugins gibt, die jeweils die Projektdatei neu schreiben (mein Project Magician macht das). Ohne eine clevere Strategie gewinnt immer der letzte.

himitsu 21. Mär 2025 22:45

AW: Speichern der Projektdateien
 
Ja, die Dateien werden umbenannt, dann die neue Datei gespeichert und zuletzt die alte Version gelöscht.
(falls beim Speichern was schief geht, auch wenn es eigentlich heutzutage keinen Sinn macht mehr macht .... außer die Festplatte ist randvoll, aber dann hat man eh andere Probleme)

ringli 23. Mär 2025 16:28

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

Zitat von Uwe Raabe (Beitrag 1547358)
Ja, das geht mit einem IDE-Plugin. Die Details sind aber leider nicht in ein paar Worten zu beschreiben. Im Wesentlichen registriert man einen IOTAIDENotifier, der beim Öffnen und Erstellen eines Projekts einen IOTANotifier und IOTAModuleNotifier dort registriert. Dieser reagiert dann auf die Methoden AfterSave und ModuleRenamed.

Ich habe mich auf Grund deiner Hinweise mal daran gemacht meinen ersten Gehversuch mit einem IDE-Plugin zu machen.

Als Basis habe ich dafür das IDE Notifiers Plugin von David Hoyle verwendet. Das Ergebnis ist im Anhang zu finden. Das Projekt ist noch nicht aufgeräumt oder optimiert, es zeigt nur meinen jetzigen Stand. Mit Sicherheit habe ich vieles zu kompliziert gelöst oder sogar ganz falsch gemacht. Ich bitte hier um etwas Nachsicht. Wie gesagt, es ist mein erster Gehversuch in dieser Richtung.

Zitat:

Zitat von Uwe Raabe (Beitrag 1547358)
Etwas tricky wird es aber, wenn es mehrere solcher Plugins gibt, die jeweils die Projektdatei neu schreiben (mein Project Magician macht das). Ohne eine clevere Strategie gewinnt immer der letzte.

Das merke ich jetzt schon, ohne das ich mich derartigen Problemen beschäftigt hätte.

Derzeit hadere ich schon daran wie Delphi wohl die Dateipaare, also z.B. dproj + dpr oder pas + dfm, verwaltet. Das ist ein Punkt der derzeit noch nicht in meinem Plugin funktioniert. Zwar könnte man die zugehörigen Dateiendungen sicherlich direkt im Quelltext behandeln, aber ich vermute das das nicht der vorgesehene Weg ist.

Für weitere Tips und Hinweise bin ich dankbar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 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 by Thomas Breitkreuz