AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Release und Build Nummer vom Projekt auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Release und Build Nummer vom Projekt auslesen

Ein Thema von RWarnecke · begonnen am 11. Okt 2011 · letzter Beitrag vom 12. Okt 2011
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Release und Build Nummer vom Projekt auslesen

  Alt 11. Okt 2011, 19:19
Hallo zusammen,

ich wollte mir einen kleinen Experten basteln für die Option "Auto generate build number". Nur leider schaffe ich es nicht, die Werte aus den Projektoptionen auszulesen. Bis jetzt habe ich den folgenden Quelltext :
Delphi-Quellcode:
unit IdeNotifier;

interface

procedure Register;

implementation

uses SysUtils, TypInfo, ToolsApi;

var
  NotifierIndex: Integer;

type
  TIdeNotifier = class(TNotifierObject, IOTANotifier, IOTAIDENotifier)
  protected
    procedure AfterCompile(Succeeded: Boolean);
    procedure BeforeCompile(const Project: IOTAProject; var Cancel: Boolean);
    procedure FileNotification(NotifyCode: TOTAFileNotification;
      const FileName: string; var Cancel: Boolean);
  end;

function VariantToString(V: Variant): String;
begin
  Result := V;
end;

procedure Register;
var
  Services: IOTAServices;
begin
  Services := BorlandIDEServices as IOTAServices;
  Assert(Assigned(Services), 'IOTAServices not available');
  NotifierIndex := Services.AddNotifier(TIdeNotifier.Create);
end;

procedure RemoveNotifier;
var
  Services: IOTAServices;
begin
  if NotifierIndex <> -1 then
  begin
    Services := BorlandIDEServices as IOTAServices;
    Assert(Assigned(Services), 'IOTAServices not available');
    Services.RemoveNotifier(NotifierIndex);
  end;
end;

function MsgServices: IOTAMessageServices;
begin
  Result := (BorlandIDEServices as IOTAMessageServices);
  Assert(Result <> nil, 'IOTAMessageServices not available');
end;

procedure TIdeNotifier.AfterCompile(Succeeded: Boolean);
begin
  MsgServices.AddTitleMessage('After Compile');
  MsgServices.AddTitleMessage('Platform : ' + (BorlandIDEServices as IOTAModuleServices).GetActiveProject.GetPlatform);
  MsgServices.AddTitleMessage('Configuration : ' + (BorlandIDEServices as IOTAModuleServices).GetActiveProject.GetConfiguration);
  (BorlandIDEServices as IOTAModuleServices).GetActiveProject.SetPlatform('Win32');
  (BorlandIDEServices as IOTAModuleServices).GetActiveProject.SetConfiguration('Debug');
  MsgServices.AddTitleMessage('Release : ' + VariantToString((BorlandIDEServices as IOTAModuleServices).GetActiveProject.ProjectOptions.Values['Release']));
  MsgServices.AddTitleMessage('BuildNo : ' + VariantToString((BorlandIDEServices as IOTAModuleServices).GetActiveProject.ProjectOptions.Values['Build']));
end;

procedure TIdeNotifier.BeforeCompile(const Project: IOTAProject; var Cancel: Boolean);
var
  ReleaseNo: Double;
  BuildNo: Double;
begin
  MsgServices.AddTitleMessage('Before Compile');
  MsgServices.AddTitleMessage('Platform : ' + Project.GetPlatform);
  MsgServices.AddTitleMessage('Configuration : ' + Project.GetConfiguration);
  Project.SetPlatform('Win32');
  Project.SetConfiguration('Debug');
  MsgServices.AddTitleMessage('Release : ' + VariantToString(Project.ProjectOptions.Values['Release']));
  MsgServices.AddTitleMessage('BuildNo : ' + VariantToString(Project.ProjectOptions.Values['Build']));
end;

procedure TIdeNotifier.FileNotification(NotifyCode: TOTAFileNotification;
  const FileName: string; var Cancel: Boolean);
begin
  MsgServices.AddTitleMessage(Format('%s: %s',
    [GetEnumName(TypeInfo(TOTAFIleNotification), Ord(NotifyCode)), FileName]));
end;

initialization

finalization
  RemoveNotifier;

end.
Wenn ich jetzt die Zeilen für die Configuration und für die Platform auskommentiere funktioniert der Experte zum Auslesen der beiden Werte hervorragend auf Delphi XE oder kleiner. Wenn ich den Experten unter XE2 ausführe, dann wird mir immer nur der Wert 0 für Release und Build angezeigt.

Ich weiß jetzt nicht mehr weiter, wie ich an die Werte unter XE2 rankomme. Könnt Ihr mir da helfen ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Release und Build Nummer vom Projekt auslesen

  Alt 11. Okt 2011, 19:44
Du musst wahrscheinlich auf ein Update warten. Die Versioninfo bei XE2 funktioniert generell seltsam, es existieren 13 qc Einträge.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

AW: Release und Build Nummer vom Projekt auslesen

  Alt 12. Okt 2011, 06:35
Hast Du dazu ein paar Links ? Irgendwie kapier ich die Suche im QC nicht.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Release und Build Nummer vom Projekt auslesen

  Alt 12. Okt 2011, 08:28
Hier der Link zur Suche inklusive Parameter. Die ist eigentlich ganz einfach
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#5

AW: Release und Build Nummer vom Projekt auslesen

  Alt 12. Okt 2011, 08:46
Hallo Union,

danke für die Links. Werde die mal durchschauen und eventuell einen neuen QC aufmachen, sofern hier nicht jemand noch sagt, dass ich einen Fehler gemacht habe in meinem Quelltext.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Release und Build Nummer vom Projekt auslesen

  Alt 12. Okt 2011, 09:24
Die Frage ist vor allem: Wie debugged man sowas? Ich hab mir mit IOTAServices schon so manches Ei gelegt (IDE in Endlosschleife usw.)
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#7

AW: Release und Build Nummer vom Projekt auslesen

  Alt 12. Okt 2011, 09:43
So ich habe beschlossen vorsichtshalber eine QC aufzumachen. Der Fehler ist jetzt an Embarcadero unter der Nummer 99959 gemeldet.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Release und Build Nummer vom Projekt auslesen

  Alt 12. Okt 2011, 09:49
Die Frage ist vor allem: Wie debugged man sowas? Ich hab mir mit IOTAServices schon so manches Ei gelegt (IDE in Endlosschleife usw.)
Du müsstest die Delphi-IDE als Host-Prozess für dein Experten-Projekt hinterlegen so das eine 2te Instanz der IDE in deiner ersten Instanz als zu Debuggende App geladen wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 22: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