Главная страница
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.019 c
11-1173254708
!Pharaon!
2007-03-07 11:05
2007.10.07
Проблемы с MirrorKOLPackageD7.bpl


15-1189131844
Slider007
2007-09-07 06:24
2007.10.07
С днем рождения ! 7 сентября 2007 пятница


2-1189432796
новичёк
2007-09-10 17:59
2007.10.07
распаковать GZIP


2-1189409379
Sonia
2007-09-10 11:29
2007.10.07
DBLookUpComboBox


2-1188800107
Андрей Пл
2007-09-03 10:15
2007.10.07
Изменение определенной строки в txt файле.