Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 10.2 Tokyo Starter (https://www.delphipraxis.net/193222-delphi-10-2-tokyo-starter.html)

Turbo78 26. Jul 2017 20:44

AW: Delphi 10.2 Tokyo Starter
 
Es gelingt mir nicht die VersionInfo einzulesen.
Ich habe mit beiden Infostrings ausprobiert, aber es liegt anscheinlich an was anderen.
Hat jemand eine Idee, warum die Funktion in Delphi 10 nicht funktioniert?

Danke in Voraus,
Toni

Diese Prozedur funktioniert unter Delphi 7:
Delphi-Quellcode:
  Procedure SetupProgramVersionData;

    const
      InfoNum = 10;
      InfoStr: array[1..InfoNum] of string =
(* *)
        ('CompanyName', 'FileDescription', 'FileVersion',
         'InternalName', 'LegalCopyright', 'LegalTradeMarks',
         'OriginalFileName', 'ProductName', 'ProductVersion', 'Comments');
(*
        ('Firmenname', 'Beschreibung', 'Dateiversion',
         'InternerName', 'Copyright', 'Warenzeichen',
         'Originaldateiname', 'Produktname', 'Produktversion', 'Kommentare');
*)
    var
      S: string;
      n, Len, i: DWORD;
      Buf: PChar;
      Value: PChar;
      ValueStr: array[1..InfoNum] of string;
    begin // SetupProgramVersionData
      S := Application.ExeName;
      n := GetFileVersionInfoSize(PChar(S), n);
      if n > 0 then begin
        Buf := AllocMem(n);
        GetFileVersionInfo(PChar(S), 0, n, Buf);

        for i := 1 to InfoNum do
          if VerQueryValue(Buf, PChar('StringFileInfo\040704E4\' + InfoStr[i]), Pointer(Value), Len) then begin
            ValueStr[i] := Value;
            end;
        FreeMem(Buf, n);

    end; // SetupProgramVersionData

Glados 26. Jul 2017 20:59

AW: Delphi 10.2 Tokyo Starter
 
Versuchs mal hiermit

Delphi-Quellcode:

function getVersionInfo(FileName, InfoStr: string; const withBuild: Boolean = False): string;
var
 VersionInfoSize, VerInfoSize, GetInfoSizeJunk: DWORD;
 VersionInfo, Translation, InfoPointer: Pointer;
 VersionValue, tmpRes: string;
begin
 Result := '';

 VerInfoSize := GetFileVersionInfoSize(PChar(FileName), GetInfoSizeJunk);

 if VerInfoSize > 0 then
  begin
   GetMem(VersionInfo, VerInfoSize);

   try
    GetFileVersionInfo(PChar(FileName), 0, VerInfoSize, VersionInfo);

    VerQueryValue(VersionInfo, '\\VarFileInfo\\Translation', Translation, VerInfoSize);
    VersionValue := '\\StringFileInfo\\' + IntToHex(LoWord(Integer(Translation^)), 4) + IntToHex(HiWord(Integer(Translation^)), 4) + '\\';
    VersionInfoSize := 0;

    if InfoStr = 'Build' then
     begin
      VerQueryValue(VersionInfo, PChar(VersionValue + 'FileVersion'), InfoPointer, VersionInfoSize);
      tmpRes := PChar(InfoPointer);
      tmpRes := Copy(tmpRes, LastDelimiter('.', tmpRes) + 1, Length(tmpRes));
     end
    else
     begin
      VerQueryValue(VersionInfo, PChar(VersionValue + InfoStr), InfoPointer, VersionInfoSize);
      tmpRes := PChar(InfoPointer);
      if (InfoStr = 'FileVersion') and (not withBuild) then
       tmpRes := Copy(tmpRes, 1, LastDelimiter('.', tmpRes) - 1);
     end;

    Result := tmpRes;
   finally
    FreeMem(VersionInfo);
   end;
  end;
end;

... := getVersionInfo(ParamStr(0), 'FileVersion');
... := getVersionInfo(ParamStr(0), 'LegalCopyright');
... := getVersionInfo(ParamStr(0), 'Build');
Geht sicher schöner. Könnt ihr ja vielleicht schöner machen, ich wüsste nicht wie. Aber es funktioniert perfekt von Windows XP bis Windows 10.

Turbo78 27. Jul 2017 22:13

AW: Delphi 10.2 Tokyo Starter
 
Vielen Dank!
Ich habe es nicht ganz übernommen, sondern nur die Hex-Konstante 040704E4 in 040904E4
(das ist das Ergebnis von IntToHex(LoWord(Integer(Translation^)), 4) + IntToHex(HiWord(Integer(Translation^)), 4) )
angepasst.

Ich habe eine weitere Frage bezüglich Conditional Compilation.
In Borland Delphi 7 konnte man unter Project/Options $DEFINE 'name' eintragen. Im Delphi 10 wird diese Anweisung beim übersetzen ignoriert.
Wie macht man es beim Delphi 10 richtig?

Danke in Voraus,
Toni

jaenicke 27. Jul 2017 22:20

AW: Delphi 10.2 Tokyo Starter
 
Zitat:

Zitat von Turbo78 (Beitrag 1377659)
In Borland Delphi 7 konnte man unter Project/Options $DEFINE 'name' eintragen. Im Delphi 10 wird diese Anweisung beim übersetzen ignoriert.
Wie macht man es beim Delphi 10 richtig?

Dort haben wir auch Defines eingetragen. Das funktioniert auch.

Turbo78 11. Aug 2017 09:14

AW: Delphi 10.2 Tokyo Starter
 
Gibt es in Delöphi 10 Schnittstelle zu EXCEL (eigentlich Office?) ?
Falls ja, wie wird in Delphi 10 mit EXCEL gearbeitet.

Im Delphi7 gab es Schnittstellen-Dateien für Office mit Deklarationen von Konstanten und Funktionsaufrufen.

Danke in Voraus, Toni

Der schöne Günther 11. Aug 2017 09:18

AW: Delphi 10.2 Tokyo Starter
 
Die Office-Komponenten sind noch dabei (zumindest waren sie das um XE 7 herum noch), man muss sie aber von Hand installieren:

http://francois-piette.blogspot.de/2...omponents.html

Turbo78 11. Aug 2017 09:19

AW: Delphi 10.2 Tokyo Starter
 
Zitat:

Zitat von jaenicke (Beitrag 1377660)
Zitat:

Zitat von Turbo78 (Beitrag 1377659)
In Borland Delphi 7 konnte man unter Project/Options $DEFINE 'name' eintragen. Im Delphi 10 wird diese Anweisung beim übersetzen ignoriert.
Wie macht man es beim Delphi 10 richtig?

Dort haben wir auch Defines eingetragen. Das funktioniert auch.

Bei mir funktioniert es nicht - die Defines werden ignoriert.

Turbo78 11. Aug 2017 09:28

AW: Delphi 10.2 Tokyo Starter
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1378563)
Die Office-Komponenten sind noch dabei (zumindest waren sie das um XE 7 herum noch), man muss sie aber von Hand installieren:

http://francois-piette.blogspot.de/2...omponents.html

Sind leider nicht bei Delphi 10.2 Tokyo Starter :(

Turbo78 11. Aug 2017 15:17

AW: Delphi 10.2 Tokyo Starter
 
Gibt es die Beschreibung von Delphi 10.2 Tokyo Starter Features ?

Aviator 11. Aug 2017 15:28

AW: Delphi 10.2 Tokyo Starter
 
Zitat:

Zitat von Turbo78 (Beitrag 1378611)
Gibt es die Beschreibung von Delphi 10.2 Tokyo Starter Features ?

Jep. Hier.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:41 Uhr.
Seite 2 von 3     12 3      

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