AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren

Ein Thema von Stewag · begonnen am 19. Mai 2011 · letzter Beitrag vom 23. Mai 2011
Antwort Antwort
Seite 1 von 2  1 2      
Stewag

Registriert seit: 12. Jun 2008
161 Beiträge
 
Delphi 12 Athens
 
#1

Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren

  Alt 19. Mai 2011, 12:01
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
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren

  Alt 19. Mai 2011, 12:23
Hallo und herzlich Willkommen in der 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
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
161 Beiträge
 
Delphi 12 Athens
 
#3

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren

  Alt 19. Mai 2011, 12:48
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
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren

  Alt 19. Mai 2011, 13:20
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
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren

  Alt 19. Mai 2011, 19:33
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

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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#6

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren

  Alt 19. Mai 2011, 19:46
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
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren

  Alt 19. Mai 2011, 19:48
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 ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (19. Mai 2011 um 20:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren

  Alt 20. Mai 2011, 07:39
Wenn es nur um die Versionsnummer geht: RCStamp: http://www.michael-puff.de/Programmi.../RCStamp.shtml
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
161 Beiträge
 
Delphi 12 Athens
 
#9

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren

  Alt 22. Mai 2011, 07:42
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?
Steffen

Geändert von Stewag (22. Mai 2011 um 07:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

AW: Objekteigenschaften (Beschreibung, Kommentar) automatisch generieren

  Alt 22. Mai 2011, 12:39
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 01:13 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