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
 
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
 


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 16:40 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