Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.07;
Скачать: CL | DM;

Вниз

Информация о билде в Delphi.   Найти похожие ветки 

 
Анатолий К.   (2007-09-08 18:55) [0]

В настройках delphi есть возможность включить: Auto-increment build number. При этом при каждом Project->Build, этот счетчик будет увеличиваться. А как сделать, что бы он увеличивался при каждой компиляции по F9?


 
Инс ©   (2007-09-08 19:01) [1]

В настройках среды такой опции нет. Так что либо делайте Build. Хотя думаю  можно попытаться написать свой эксперт. В котором создать нотификатор, срабатывающий перед компиляцией, и изменять dof-файл проекта. Над этим нужно подумать, сходу не скажу, возможно ли это.


 
DrPass ©   (2007-09-08 19:03) [2]


> А как сделать, что бы он увеличивался при каждой компиляции
> по F9?

Было бы несколько странно, если бы счетчик сборок проекта (build) вдруг стал увеличиваться при компиляции прокта (compile), тебе не кажется?
Я понимаю, что чем больше цифирька в счетчике у твоей программулины, тем она будет солиднее смотреться среди курсовиков твоих однокурсников, но все-таки...


 
Инс ©   (2007-09-08 19:10) [3]


> [2] DrPass ©   (08.09.07 19:03)

Так большую циферку и руками поставить можно, что мешает. Кстати, MS вроде бы сами не соблюдают свои же путанные правила нумерации версий, так что, ИМХО, автор сам вправе решать, по каким правилам ему нумеровать версии своих программ.


 
DrPass ©   (2007-09-08 19:31) [4]


> Инс ©   (08.09.07 19:10) [3]


> Так большую циферку и руками поставить можно, что мешает

Так это ж нечестно! :)

> Кстати, MS вроде бы сами не соблюдают свои же путанные правила
> нумерации версий

Правила нумерации версий - это миф. У каждого разработчика своя система. Та же MS обычно при выпуске новой версии операционки сперва приписывает единичку в minor, и только при следующей версии увеличивает major. Это у них прикол такой...


 
Инс ©   (2007-09-08 19:37) [5]


> Правила нумерации версий - это миф.

Есть там какие-то рекомендации от MS, но в общем то согласен, это и сказал в [3]. Например, у одной программы версия 1.11 старше, чем 1.9, а у других - наоборот. Тот же номер сборки у Windows в ряд ли соответствует реальному. Так что автор имеет полное моральное право писать туда номер компиляции, или дату рождения своей девушки - его право.


 
jack128_   (2007-09-08 20:05) [6]


> Например, у одной программы версия 1.11 старше, чем 1.9,
>  а у других - наоборот.

э-э?  Как это наоборот?  9 > 11  ??  Круто.


 
Dib@zol ©   (2007-09-08 20:08) [7]

> э-э?  Как это наоборот?  9 > 11  ??  Круто.

9 >> 1.1 что и подразумевалось.


 
Anatoly Podgoretsky ©   (2007-09-08 20:11) [8]

> jack128_  (08.09.2007 20:05:06)  [6]

А если в строчном представление?


 
jack128_   (2007-09-08 21:19) [9]


> А если в строчном представление?

Ну тогда бы почему и числа по из строчным представлениям не сравнивать? ;-)


> 9 >> 1.1 что и подразумевалось.

А что мешает так и написать "1.1" ??


 
Инс ©   (2007-09-08 22:47) [10]

В общем, накидал я что-то похожее, что выполняет поставленную задачу. Ничего особенного, но работает:
unit IncOnCompileClasses;

interface

uses SysUtils, ToolsAPI;

type
 TIncOnCompileWizard = class(TNotifierObject, IOTAWizard)
 private
   FNotifierID: Integer;
 public
   // IOTAWizard
   function GetIDString: string;
   function GetName: string;
   function GetState: TWizardState;
   procedure Execute;

   constructor Create;
   destructor Destroy; override;
 end;

 TIDENotifier = class(TNotifierObject, IOTANotifier, IOTAIDENotifier)
 public
   // IOTAIDENotifier
   procedure FileNotification(NotifyCode: TOTAFileNotification;
     const FileName: string; var Cancel: Boolean);
   procedure BeforeCompile(const Project: IOTAProject; var Cancel: Boolean); overload;
   procedure AfterCompile(Succeeded: Boolean); overload;
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterPackageWizard(TIncOnCompileWizard.Create);
end;

function GetActiveProjectGroup: IOTAProjectGroup;
var
 ModuleServices: IOTAModuleServices;
 i: Integer;
begin
 Result := nil;
 if Assigned(BorlandIDEServices) then
 begin
   ModuleServices := BorlandIDEServices as IOTAModuleServices;
   for i := 0 to ModuleServices.ModuleCount - 1 do
     if Supports(ModuleServices.Modules[i], IOTAProjectGroup, Result) then
       Break;
 end;
end;

function GetActiveProject: IOTAProject;
var
 ProjectGroup: IOTAProjectGroup;
begin
 Result := nil;
 ProjectGroup := GetActiveProjectGroup;
 if ProjectGroup <> nil then
   Result := ProjectGroup.ActiveProject;
end;

{ TIncOnCompileWizard }

constructor TIncOnCompileWizard.Create;
begin
 inherited Create;
 FNotifierID:=(BorlandIDEServices as IOTAServices).AddNotifier(TIDENotifier.Create);
end;

destructor TIncOnCompileWizard.Destroy;
begin
 if FNotifierID <> -1 then
   (BorlandIDEServices as IOTAServices).RemoveNotifier(FNotifierID);
 inherited Destroy;
end;

procedure TIncOnCompileWizard.Execute;
begin
end;

function TIncOnCompileWizard.GetIDString: string;
begin
 Result:="IncOnCompileWizard";
end;

function TIncOnCompileWizard.GetName: string;
begin
 Result:="IncOnCompileWizard";
end;

function TIncOnCompileWizard.GetState: TWizardState;
begin
 Result:=[wsEnabled];
end;

{ TIDENotifier }

procedure TIDENotifier.AfterCompile(Succeeded: Boolean);
begin
end;

procedure TIDENotifier.BeforeCompile(const Project: IOTAProject;
 var Cancel: Boolean);
var
 Build: Variant;
begin
 Build:=GetActiveProject.ProjectOptions.Values["Build"];
 GetActiveProject.ProjectOptions.Values["Build"]:=Build + 1;
end;

procedure TIDENotifier.FileNotification(NotifyCode: TOTAFileNotification;
 const FileName: string; var Cancel: Boolean);
begin
end;

end.


 
DrPass ©   (2007-09-08 23:23) [11]


> Инс ©   (08.09.07 22:47) [10]

Тогда при выполнении Build количество билдов будет на 2 увеличиваться :)


 
Инс ©   (2007-09-08 23:25) [12]


> Тогда при выполнении Build количество билдов будет на 2
> увеличиваться :)

Если галочку поставить - то да. Но это исправимо :) Будет автору домашним заданием :)



Страницы: 1 вся ветка

Текущий архив: 2007.10.07;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.024 c
15-1189170770
matt
2007-09-07 17:12
2007.10.07
резюме


2-1189472253
Glivera
2007-09-11 04:57
2007.10.07
экземпляр формы


1-1185227514
Mitrofan
2007-07-24 01:51
2007.10.07
TThread ы и проблемы с ними же


1-1185387039
Efir
2007-07-25 22:10
2007.10.07
Сообщения клавиатуры


2-1189177170
Irish
2007-09-07 18:59
2007.10.07
Архиваторы.Увеличение скорости