Code: Alles auswählen
oDlgApp:setTitle(AppName(.F.) + " vom " + DToC(FileDate(AppName())) + " - " + FileTime(AppName())
Jan
Moderator: Moderatoren
Code: Alles auswählen
oDlgApp:setTitle(AppName(.F.) + " vom " + DToC(FileDate(AppName())) + " - " + FileTime(AppName())
Der Compiler ersetzt diese Konstanten mit der zugehörigen Information, d.h. der Wert der Konstanten ändert sich beim kompilieren mehrerer Quellcode-Dateien.
__FILE__ Eine Zeichenkette mit dem Namen der kompilierten Datei.
__FILEPATH__ Eine Zeichenkette mit dem Namen und der Pfadangabe der kompilierten Datei.
__LINE__ Ein numerischer Wert, der die Zeilennummer der Datei angibt, in der die Konstante verwendet wird.
__DATE__ Eine Zeichenkette, die das Datum enthält, an dem die Datei kompiliert wurde. Das Format ist "YYYYMMDD", wobei YYYY für das Jahr, MM den Monat und DD den Tag steht. Dieser Wert kann mittels Stod() in eine Variable des Types Datum umgewandelt werden.
__TIME__ Eine Zeichenkette im Format "HH:MM:SS". Sie gibt die Systemzeit an, bei der eine Datei kompiliert wurde.
TOM hat geschrieben:Aber Jan macht's ja mit Pfad.
Jan hat geschrieben:Code: Alles auswählen
oDlgApp:setTitle(AppName(.F.) + " vom " + DToC(FileDate(AppName())) + " - " + FileTime(AppName())
ich denke nichtHandbuch hat geschrieben: AppName( [<lFullQualifiedName>] ) --> cExeFileName
Parameter
<lFullQualifiedName>
Der Standardwert für <lFullQualifiedName> ist .F. (falsch). Wird er auf .T. (wahr) gesetzt, gibt die Funktion den Namen der EXE Datei einschließlich Laufwerk und Pfad zurück.
Rückgabe
Code: Alles auswählen
#define chProgrammVersion "0.00-000"
#define chFileVersion "0"
#define chProgrammFreigabe "00.00.2012"
Code: Alles auswählen
#include "ANW_ALLG.CH"
...
LANGUAGE = "de"
VERSION
"CompanyName" = "..."
"LegalCopyright" = "Copyright © ..."
"ProductName" = "..."
"ProductVersion" = chProgrammVersion
"FileDescription" = "..."
"FileVersion" = chFileVersion
"OriginalFilename" = "....EXE"
Code: Alles auswählen
// Anwendungsfenster erzeugen (application window)
oDlg := HBRootDialog():new( ,, aPos, aSize,, .F. )
oDlg:title := HB_PROG_NAME
oDlg:ProgName := HB_PROG_NAME
oDlg:ProgVersion := chProgrammVersion
oDlg:ProgVersionMitDatum := HB_PROG_VERSION_MIT_DATUM
oDlg:ProgFreiDatum := chProgrammFreigabe
oDlg:aProgOwner := HB_PROG_OWNER
oDlg:aProgUser := HB_PROG_USER
oDlg:aLizenzText := HB_PROG_LIZENZ_TEXT
Das ist eindeutig die bevorzugte und auch meine Variante, damit sieht man auch über die Eigenschaften die Programmversion (wenn sich das Programm mal nicht mehr starten lässt).Tom hat geschrieben:Ich binde Produkt- und Versionsinformationen als Ressource ein, wobei beides bei jedem Build automatisch gesetzt wird (es gibt Templates für die ARC-Dateien, die von einem Parser verarbeitet werden). Diese Informationen stehen innerhalb der Anwendung zur Verfügung, aber man kann sie auch - über die Eigenschaften der EXE und der DLLs - von außen sehen. Erstellungsdatum und -uhrzeit können sich möglicherweise ändern, etwa, wenn man die EXE zippt und wieder auspackt (je nach ZIP-Tool).