Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   wie DPROJ aus OTA/OpenToolsAPI bearbeiten (https://www.delphipraxis.net/213856-wie-dproj-aus-ota-opentoolsapi-bearbeiten.html)

himitsu 9. Okt 2023 10:32

wie DPROJ aus OTA/OpenToolsAPI bearbeiten
 
Moin.

Also, es gibt zwar IOTAProjectOptionsConfigurations, aber ist für mein Vorhaben leider ungeeignet.

Dann gibt es noch IOTAProjectFileStorage und IOTAProjectFileStorageNotifier, wo man einen "eigenen" Unterknoten in <Project ...> <ProjectExtensions> <BorlandProject> verwalten kann.
Bzw. über XMLNode.ParentNode kann man sich bis zum <ProjectExtensions> hoch arbeiten, aber mehr geht nicht. (Delphi verwaltet zur Laufzeit wohl diesen Teil einzeln, als XML-Objekt)

Eventuell kommt man noch irgendwie über ein IStream an diese Datei.
Mir wäre es lieb, wenn es in der OTA einen Notifier gäbe, welcher mich beim/vorm Speichern an die DPROJ ran ließe.
(ähnlich dem bekannten Project Magician, würde ich gern direkt beim Speichern einiges Sortieren ... Emba wird das wohl nie selbständig noch in diesem Jahrtausend schaffen)


PS: Eurekalog hatte früher mal seine INI-Config, ganz pervers, unten an die DPROJ gehängt. (k.A. wie die das gemacht haben)

Uwe Raabe 9. Okt 2023 10:58

AW: wie DPROJ aus OTA/OpenToolsAPI bearbeiten
 
Grundsätzlich kannst du an jedes Modul einen IOTANotifier anhängen, der dich beim Speichern (BeforeSave/AfterSave) benachrichtigt.

Wenn es um die Sortierung der DPROJ geht, dann muss man das aber im AfterSave auf die erzeugte Datei anwenden. Im Speicher liegt ja nur eine Datenstruktur vor, die beim Schreiben in das XML umgewandelt wird. Daher bringt es nichts, im BeforeSave irgendetwas zu sortieren, da zu dem Zeitpunkt noch gar keine Sortierung vorliegt die man beeinflussen könnte.

Allerdings muss man beim nachträglichen Manipulieren der DPROJ dafür sorgen, dass die TimeStamps gleich bleiben. Andernfalls bekommt man in der IDE eine Nachfrage, ob man die Datei neu laden möchte.

himitsu 9. Okt 2023 12:29

AW: wie DPROJ aus OTA/OpenToolsAPI bearbeiten
 
Joar, es wär wohl zu einfach, wenn man an die komplette XML, am Besten noch als DOM, direkt vom Speichern (Umwandlung in Text/Stream) rankommen könnte. :stupid:
Oder notfalls an den Stream, bevor er in die Datei kommt.

Über die OTA kann man auch ein virtuelles FileSystem einhängen, aber damit scheint sich wohl noch niemand beschäftigt zu haben, bzw. ob man damit auch in die "normale" Dateibehandlung rein kommt.

Uwe Raabe 9. Okt 2023 12:46

AW: wie DPROJ aus OTA/OpenToolsAPI bearbeiten
 
Da jetzt weitere Ansatzpunkte zur Manipulation einzufügen halte ich auch nicht wirklich für zielführend. Man kann mit dem BeforeSave und AfterSave eigentlich schon ziemlich viel erreichen. Andernfalls würde der Project Magician auch nicht funktionieren.

himitsu 9. Okt 2023 15:22

AW: wie DPROJ aus OTA/OpenToolsAPI bearbeiten
 
Direkt das "originale" komplette XML-DOM hätte den Vorteil, dass so Dinge, wie komische Zeilenumbrüche und Dergleichen, nicht beachtet werden müssten, weil das ja noch die selbe Instanz wäre, die Delphi zum Speichern nutzt.
Aber dafür gibt es in der OTA aktuell keine Schnittstelle.


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