Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren (https://www.delphipraxis.net/160557-objekteigenschaften-beschreibung-kommentar-automatisch-generieren.html)

Stewag 19. Mai 2011 12:01

Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren
 
Ich würde gern die Versionsnummer des aktuellen Datenbanktreibers bei der Kompilierung automatisch in den Objekteigenschaften (etwa als Kommentar oder Beschreibung) eintragen lassen, so dass diese Information im Explorer in den Dateieigenschaften verfügbar ist.
Ist das evt. durch eine Compilerdirektive (habe keine gefunden) oder dcc32 möglich?

Danke,
Steffen

rollstuhlfahrer 19. Mai 2011 12:23

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren
 
Hallo und herzlich Willkommen in der DP :dp: :dp:

Möglich ist so was nur durch Pre- und/oder Post-Build-Ereignisse, die es bei Delphi 2007 geben sollte. Du könntest im Pre-Build-Ereignis ein Programm ablaufen lassen, welches die Versionsnummer ermittelt, diese in eine RC-Datei schreibt und die RC-Datei dann kompiliert. Die dazugehörige Res-Datei müsste dann im Quelltext eingebunden werden. (Dies wäre aber dann im Explorer nicht sichtbar).

Andere Methode, die dann auch im Explorer sichtbar wäre: Du schreibst in das Feld Kommentar einen Platzhalter rein, der so lang ist, wie deine Versionsnummer und unverkennbar ist. Dann lässt du im Post-Build-Ereignis ein Programm laufen, welches die Versionsnummer ausließt und dann deine EXE updatet. (Die entsprechende Länge, weil es sonst zu Problemen kommen könnte bezüglich der Länge der Ressourcen; Der unverkennbare Platzhalter, sodass man ihn einfach suchen kann und mit StringReplace o.Ä. einfach die neue Versionsnummer reinschreiben kann.)

Bernhard

Stewag 19. Mai 2011 12:48

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren
 
Hallo Bernhard,

danke für die schnelle Antwort.

Lösung 2, zum Verständnis: Ich muss also eine selbstständige .exe erstellen die im Binärcode eine Ersetzung macht?
Kann ich die Datei dazu in ein Memo einlesen und nach dem Replace wieder exportieren - oder wie würdest du vorgehen?

Mfg.
Steffen

rollstuhlfahrer 19. Mai 2011 13:20

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren
 
Kein Memo bitte. Du hast ja Ressourcen. Diese kannst du mit BeginUpdateRessource und Co o.Ä. bearbeiten. Heißt: Öffnen -> Ressource auslesen -> Kommentar finden -> Treiberversion auslesen -> Treiberversion schreiben -> EXE schließen.

Windows bietet diese Funktionen an, sodass man nicht auf Binär-Ebene arbeiten muss und schon gar nicht mit visuellen Komponenten und StringListen.

Bernhard

Sir Rufo 19. Mai 2011 19:33

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren
 
Ich würde ja den Weg über die RC Datei favorisieren, denn da muss lediglich eine Text-Datei geschrieben werden :)

Aber wieso schreibt eigentlich jeder, dass eine RC Datei manuell kompiliert werden muss?
Das erledigt Delphi doch ganz von alleine (wenn die RC Datei in der DPR -Datei angegeben wurde), oder habe ich ein anderes Delphi :gruebel:

Evtl. muss man noch die daraus resultierende RES Datei löschen um ein Kompilieren der RC Datei zu erzwingen, letztendlich reduziert sich das ganze Vorhaben aber darauf ein Datei zu löschen und eine Textdatei zu erstellen/ändern.

rollstuhlfahrer 19. Mai 2011 19:46

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren
 
Und wie wird dann die Info im Explorer angezeigt, was der TE ja ganz offensichtlich haben will? - Ansonsten müssen die Delphi-Eigenen Dateiinformationen abgeschaltet sein und dann ist unter anderem nicht mehr die Funktion mit der fortlaufenden Kompilierungsnummer zu haben.

Bernhard

Sir Rufo 19. Mai 2011 19:48

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren
 
Diese Informationen stehen doch in der DPROJ Datei ... Die kann man im PreBuildEvent auch bearbeiten

EDIT

Ich nehme das mal wieder zurück ... das steht da zwar drin, ist aber nur eine Kopie der Werte und diese wird beim Schließen des gesamten Projekts aktualisiert.
Damit ist die dafür nicht zu gebrauchen ...

Luckie 20. Mai 2011 07:39

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren
 
Wenn es nur um die Versionsnummer geht: RCStamp: http://www.michael-puff.de/Programmi.../RCStamp.shtml

Stewag 22. Mai 2011 07:42

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren
 
RCStamp hilft mir nicht, da ich den Kommentar und nicht die Versionsnummer bearbeiten möchte.

Nach dem was ich in den letzten Tagen über die Änderung von Ressourcen gelernt habe ist ein Austauschen einzelner Strings innerhalb eines Resourcetyps (etwa RT_VERSION) nicht möglich, es muss stets eine komplett neue Version des entsprechenden Resourcetyps erstellt werden.

Das Problem dabei ist, dass im neu erstellten Resourcebereich (hier: Version Info) alle Teilinfos angegeben werden müssen, da sonst deren bisherige Information verloren geht. Dies wiederum ist recht umständlich, da diese dafür zunächst komplett ausgelesen werden müßen, etwa wie im SwissDelphicenter beschrieben.

Im Prinzip ist damit die von Bernhard zuerst genannte Lösung (Erstellung und Einbindung einer .Res Datei) die einzige praktikable Lösung. Da diese aber nicht zur Anzeige im Explorer führt, gibt es offenbar keine schnelle Lösung nach der Art "öffnen-ersetzen-speichern-schließen".
Kann das jemand bestätigen?

Luckie 22. Mai 2011 12:39

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren
 
Zitat:

Zitat von Stewag (Beitrag 1102146)
Im Prinzip ist damit die von Bernhard zuerst genannte Lösung (Erstellung und Einbindung einer .Res Datei) die einzige praktikable Lösung. Da diese aber nicht zur Anzeige im Explorer führt,

Äh wie? Diese Informationen stehen immer in der Ressource. Nur von der IDE wird diese automatisch erzeugt und eingebunden. Es spielt keine Rolle, ob du diese Funktion nutzt oder ob du von Hand eine extra Ressourcendatei mit diesen Informationen erstellst und einbindest, der Explorer zeigt diese Informationen immer an. Mache ich ja schon selbst seit Jahren so.

Hast du mal mit einem Ressourceneditor geguckt, ob die Ressource auch wirklich eincompiliert wird?


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