Вопрос AppID в зависимости от выбранной кнопки

Хамик

Старожил
Здравствуйте! Подскажите, как реализовать следующую задачу: имеется программа и нужно к ней присвоить идентификатор (AppId) в зависимости от выбранной кнопки. Надо что-то типа этого:
Код:
[Setup]
AppId={code:GetAppID}

[Co de]
procedure GetAppID(id: string): String;
begin
if Bus.Checked then
id := '{{CA297C8C-88CC-4708-9177-4CD49DBE87B4}';
if Eng.Checked then
id := '{{8177DA7A-1D72-4C0A-9B22-BA030AEF3C58}';
if Ext.Checked then
id := '{{A9E0C8A3-E5C7-4D5D-A893-663D09782286}';
if Net.Checked then
id := '{{D72E97FC-7702-4385-9679-0E3515AB922C}';
end;
 

Хамик

Старожил
пришла в голову вот такая мысль. Рас уж не возможно изначально задать идентификатор, то возможно ли его изменить после установки?
 

sergey3695

Ветеран
Модератор
Хамик, не знал, спасибо kotyarko@fb, с озона.
Код:
[Setup]
AppId={code:GetAppID}
UsePreviousLanguage=no
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
DisableFinishedPage=yes
OutputDir=.

[code]
var
  RadioButton1: TNewRadioButton;
  RadioButton2: TNewRadioButton;

function GetAppID(const Value: string): string;
var
AppID: string;
begin
if Assigned(RadioButton1) then
begin
  AppID := 'My Program'; //это то, что будет приниматься за AppID до того, пока не выбран вариант радиоБаттонов.
if RadioButton1.Checked then
  Result := AppID + '_32'
else
  Result := AppID + '_64';
end;
end;

procedure InitializeWizard;
var
  Page: TWizardPage;
begin
  Page := CreateCustomPage(wpWelcome, '2', '1');
  RadioButton1 := TNewRadioButton.Create(WizardForm);
  RadioButton1.Parent := Page.Surface;
  RadioButton1.Checked := True;
  RadioButton1.Caption := 'Install 32-bit version';
  RadioButton2 := TNewRadioButton.Create(WizardForm);
  RadioButton2.Parent := Page.Surface;
  RadioButton2.Top := RadioButton1.Top + RadioButton1.Height + 4;
  RadioButton2.Caption := 'Install 64-bit version';
end;
я это не подумал сделать, е мое :lol:
Код:
if Assigned(RadioButton1) then
 
Последнее редактирование:

Хамик

Старожил
Немножко не то. Как теперь с этого кода сделать на 4 радиокнопке, и чтобы к каждой кнопке присвоить собственный AppID?
 

sergey3695

Ветеран
Модератор
Хамик, а что не так-то?
Код:
function GetAppID(const Value: string): string;
begin
if Assigned(RadioButton1) then
begin
if RadioButton1.Checked then
  Result := 'RadioButton1';
if RadioButton2.Checked then
  Result := 'RadioButton2';
if RadioButton3.Checked then
  Result := 'RadioButton3'
if RadioButton4.Checked then
  Result := 'RadioButton4'
end;
end;
Вот...и будет работать.
 
Сверху