AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE wie DPROJ aus OTA/OpenToolsAPI bearbeiten
Thema durchsuchen
Ansicht
Themen-Optionen

wie DPROJ aus OTA/OpenToolsAPI bearbeiten

Ein Thema von himitsu · begonnen am 9. Okt 2023 · letzter Beitrag vom 9. Okt 2023
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#1

wie DPROJ aus OTA/OpenToolsAPI bearbeiten

  Alt 9. Okt 2023, 11:32
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)
$2B or not $2B

Geändert von himitsu ( 9. Okt 2023 um 11:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: wie DPROJ aus OTA/OpenToolsAPI bearbeiten

  Alt 9. Okt 2023, 11:58
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: wie DPROJ aus OTA/OpenToolsAPI bearbeiten

  Alt 9. Okt 2023, 13:29
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.
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: wie DPROJ aus OTA/OpenToolsAPI bearbeiten

  Alt 9. Okt 2023, 13:46
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: wie DPROJ aus OTA/OpenToolsAPI bearbeiten

  Alt 9. Okt 2023, 16:22
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.
$2B or not $2B
  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 20:09 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