Код:

[Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirname={pf}\MyApp
[CustomMessages]
MSG_01=Резервные копии
MSG_02=
MSG_03=Во избежание проблем совместимости и конфликтов между модификациями рекомендуется удалить уже установленные на данный момент в игровом клиенте.%n%nВыберите необходимый пункт из представленных. При этом будет очищено содержимое папки "res_mods\0.9.4, удалена папка "res_mods\xvm" или созданы резервные копии Ваших файлов.
MSG_04=Удалить файлы
MSG_05=Сделать резервную копию файлов
MSG_06=Обновить существующие файлы
MSG_07=Ничего не трогать
MSG_08=Установщик удалит все файлы в папках.
MSG_09=Установщик сделает резервную копию всех файлов в папках.
MSG_10=Установщик создаст копию только заменяемых файлов.
MSG_11=Установщик оставит всё как есть.
[code]
var
BackupOptionsPage: TWizardPage;
ArrayRadio: array of TRadioButton;
function CreateBackupOptionsPage( const nPageId: Integer ): TWizardPage;
var
i: Integer;
Len: Integer;
begin
BackupOptionsPage := CreateCustomPage( nPageId, CustomMessage( 'MSG_01' ), CustomMessage( 'MSG_02' ) );
with BackupOptionsPage do
begin
with TNewStaticText.Create( nil ) do
begin
Parent := Surface;
SetBounds( ScaleX( 0 ), ScaleY( 0 ), ScaleX( 417 ), ScaleY( 98 ) );
AutoSize := False;
Caption := CustomMessage( 'MSG_03' );
Transparent := True;
WordWrap := True;
end;
SetArrayLength( ArrayRadio, 4 );
Len := GetArrayLength( ArrayRadio ) - 1;
for i := 0 to Len do
begin
ArrayRadio[i] := TRadioButton.Create( nil );
with ArrayRadio[i] do
begin
Parent := Surface;
SetBounds( ScaleX( 0 ), ScaleY( 102 + i * 32 ), ScaleX( 417 ), ScaleY( 17 ) );
Font.Style := [fsBold];
case i of
0: Caption := CustomMessage( 'MSG_04' );
1:
begin
Caption := CustomMessage( 'MSG_05' );
Checked := True;
end;
2: Caption := CustomMessage( 'MSG_06' );
Len: Caption := CustomMessage( 'MSG_07' );
end;
end;
end;
for i := 0 to 3 do
with TNewStaticText.Create( nil ) do
begin
Parent := Surface;
SetBounds( ScaleX( 17 ), ScaleY( 118 + i * 32 ), ScaleX( 417 ), ScaleY( 17 ) );
case i of
0: Caption := CustomMessage( 'MSG_08' );
1: Caption := CustomMessage( 'MSG_09' );
2: Caption := CustomMessage( 'MSG_10' );
3: Caption := CustomMessage( 'MSG_11' );
end;
end;
end;
Result := BackupOptionsPage.ID;
end;
procedure InitializeWizard();
begin
CreateBackupOptionsPage( wpSelectDir );
end;
//Проверить, отмечена ли нужная радио кнопка // для теста
function NextButtonClick( CurPageID: Integer ): Boolean;
begin
case PageFromID( CurPageID ) of
BackupOptionsPage: if ArrayRadio[1].Checked then //По индексу от 0 до 4
MsgBox( ArrayRadio[1].Caption, mbInformation, MB_OK );
end;
Result := True;
end;