Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 [71] 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

saurn
29-02-2016, 23:44
Irenis, можно взглянуть на один из проблемных скриптов? На счет того, что разные программы устанавливаются в одну и ту же папку, первое, что приходит на ум: для всех приложений, скорее всего, Вы используете один AppId.

Irenis
01-03-2016, 09:45
Пример скрипта https://www.sendspace.com/file/guct47. Все скрипты по сути одинаковы, отличаются лишь названиями программы и расположением файлов, которые запаковываю в установщик. AppId тоже разные.
Это кстати началось после переустановки системы. То есть заново установила inno setup, может в новой версии просто нужно дописывать какие то строки в коде? Но кроме inno setup, так же переустанавливала delphi. Как раз таки в delphi создаю файлы .exe, которые потом запаковываю в установщик. Может ли inno setup как то определять, что файлы .exe идентичны и из за этого устанавливать по одному пути? И может есть способ задавать принудительно, чтобы всегда появлялось окно выбора установки?

Ghacabertt
02-03-2016, 16:53
134589

134590

Как сделать чтобы при удалении не было никаких сообщений ?
Смотреть скриншоты!

nik1967
02-03-2016, 18:50
Смотреть скриншоты!»
А если не смотреть? И чё так нагло?
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
DisableFinishedPage=yes
OutputDir=.

[Languages]
Name: RUS; MessagesFile: "compiler:Languages\Russian.isl"

[Code]
function InitializeUninstall:boolean;
var
rcode: Integer;

begin
if not UninstallSilent then begin
Exec(ExpandConstant('{uninstallexe}'), '/SILENT', '', SW_SHOW, ewNoWait, RCode);
Exit;
end;
Result:= True;
end;

ZVSRus
04-03-2016, 15:02
Всем Доброго времени суток. Требуется подсказка, или небольшой пример.

Как сделать у Лейблов, таких как, ну например: WelcomeLabel1, WelcomeLabel2, FinishedLabel, BeveledLabel чтобы фон был прозрачным (а точнее без фонов).

kotyarko@fb
04-03-2016, 17:05
Как сделать у Лейблов, таких как, ну например: WelcomeLabel1, WelcomeLabel2, FinishedLabel, BeveledLabel чтобы фон был прозрачным (а точнее без фонов). » Лейблы они только по названию, а так это TNewStaticText.
Есть два варианта:

http://krinkels.org/threads/transparentstatic.2539/;
Создать вместо них лейблы, со свойством Transparent.

saurn
04-03-2016, 17:26
может в новой версии просто нужно дописывать какие то строки в коде? »
На счет новых версий не знаю. В прежних версия директива отключения страницы выбора папки по умолчанию была установлена в no. Попробуйте принудительно установить в no - DisableSelectDirPage=no - и посмотрите, что получится.
Может ли inno setup как то определять, что файлы .exe идентичны и из за этого устанавливать по одному пути? »
Идентичность файлов в выборе пути установки роли не имеет. Инно определяет наличие предыдущей установки согласно записи в реестре, в HKLM\Microsoft\Windows\CurentVersion\Uninstall.
Как сделать у Лейблов, таких как, ну например: WelcomeLabel1, WelcomeLabel2, FinishedLabel, BeveledLabel чтобы фон был прозрачным »
Для ANSI компилятора решение написали выше. Для UNICODE - установить значение свойства Transparent контрола в True.

ZVSRus
04-03-2016, 18:38
Есть два варианта:
По пункту 2 может есть небольшой примерчик. Так-как Модуль TransparentStatic по моему не дружит с iswin7
Во всяком случае с BeveledLabel ничего не происходит, белая полоса на стекле так и осталась.
Модуль нашёл на Форуме Krinkels.org

ZVSRus
04-03-2016, 19:54
Разобрался. И на ANSI и Unicode всё работает. У Unicode функционала по более будет!
Но загвоздка в одном так и осталась. Как быть с BeveledLabel + IsWin7 т.е. белая полоса на стекле.
На скрине видно. PS. На форуме Krinkels.org наткнулся точно на такой же вопрос, ответа не последовало.
Неужели нельзя как-то исправить.

OldGamer
05-03-2016, 06:28
Здравствуйте!

Как сделать чтобы деинсталлятор удалял папку с файлами, кот. создаётся при запуске самой программы.
Папка образуется по следующему пути: C:\Users\"Имя пользователя"\AppData\Roaming\MyProg

Nordek
05-03-2016, 07:36
Как сделать чтобы деинсталлятор удалял папку с файлами »
[UninstallDelete]
Name: {userappdata}\MyProg; Type: filesandordirs

vadjliss
06-03-2016, 12:13
Парни привет!
скрин http://fs5.directupload.net/images/160306/temp/6395q2op.jpg (http://fs5.directupload.net/images/160306/6395q2op.jpg)
помогите есть скрипт вот он

[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=.
Uninstallable=IsChecked
CreateUninstallRegKey=IsChecked

[Languages]
Name: ru; MessagesFile: compiler:Languages\Russian.isl;

[Tasks]
; Дополнительно
; Ярлык(и) на «Рабочем столе»
Name: "desktopicon"; Description: "Ярлык(и) на «Рабочем столе»"; GroupDescription: "Дополнительно:"; Check: IsChecked
; Ярлыки в меню «Пуск»
Name: "starticon"; Description: "Ярлыки в меню «Пуск»"; GroupDescription: "Дополнительно:"; Check: IsChecked

[Icons]
Name: "{group}\My Program"; Filename: "{uninstallexe}"; Tasks: starticon; Check: not IsChecked
Name: "{commondesktop}\My Program"; Filename: "{uninstallexe}"; Tasks: desktopicon; Check: IsChecked

[Files]
//папка портабл
Source: "C:\Users\WW-W\Desktop\ShareDownloader*"; DestDir: "{app}"; Check: "not IsChecked"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "C:\Users\WW-W\Desktop\ShareDownloader\*"; DestDir: "{app}"; Check: "IsChecked"; Flags: ignoreversion createallsubdirs recursesubdirs



[CustomMessages]
HeaderLabelPage=Выбор типа установки
LabelPage=Выберите нужный тип установки
MyRadioCaption_1=Распаковка
MyRadioCaption_2=Обычная установка
PageTextHeader=На этой странице Вы можете выбрать тип установки, который для Вас наиболее удобен.
MyText_1=Будет произведена распаковка в паку,%nуказанную на следующей странице
MyText_2=Будет произведена стандартная установка
Extracted=Распаковка — %1
ExtractedFolder=Выбор папки распаковки
ExtractedFolder2=В какую папку вы хотите распаковать %1?
ExtractedFolder3=Программа распакует %1 в следующую папку.
ExtractedFolder4=Программа установит %1 в следующую папку.
Installing=Распаковка...
InstallingLabel=Пожалуйста, подождите, пока %1 распакуется на ваш компьютер.
FinishedHeadingLabel=Завершение распаковки%n%1
FinishedLabelNoIcons=Программа %1 распакована на Ваш компьютер.%n%nНажмите «Завершить», чтобы выйти из программы распаковки.

[UninstallDelete]
Type: filesandordirs; Name: {app}

[code]
const
DI_NORMAL = 3;

var
MyNewPage: TWizardPage;
Rect: TRect;
HIcon: LongInt;
AIconFileName: String;
MyRadioBtn_1, MyRadioBtn_2: TNewRadioButton;

function GetModuleHandle(lpModuleName: LongInt): LongInt; external 'GetModuleHandleA@kernel32.dll stdcall';
function ExtractIcon(hInst: LongInt; lpszExeFileName: AnsiString; nIconIndex: LongInt): LongInt; external 'ExtractIconA@shell32.dll stdcall';
function DrawIconEx(hdc: LongInt; xLeft, yTop: Integer; hIcon: LongInt; cxWidth, cyWidth: Integer; istepIfAniCur: LongInt; hbrFlickerFreeDraw, diFlags: LongInt): LongInt;external 'DrawIconEx@user32.dll stdcall';
function DestroyIcon(hIcon: LongInt): LongInt; external 'DestroyIcon@user32.dll stdcall';

function IsChecked: Boolean;
begin
Result:= MyRadioBtn_2.checked;
end;

procedure RadBtnOnClick(Sender: TObject);
begin
case Sender of
MyRadioBtn_1: begin
WizardForm.Caption:= FmtMessage(ExpandConstant('{cm:Extracted}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
WizardForm.SelectDirLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder3}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
end;
MyRadioBtn_2: begin
WizardForm.Caption:= FmtMessage(SetupMessage(msgSetupWindowTitle), [ExpandConstant('{#SetupSetting("AppName")}')]);
WizardForm.SelectDirLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder4}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
end;
end;
end;

procedure GetInstTypePage();
begin
MyNewPage:= CreateCustomPage(wpWelcome, ExpandConstant('{cm:HeaderLabelPage}'), ExpandConstant('{cm:LabelPage}'));

try
// в конкретном примере из этого файла (C:\Windows\System32\shell32.dll) берём иконки, для пробного показа.
// Можно использовать обычные .ico
AIconFileName:= ExpandConstant('{sys}\shell32.dll');
//

Rect.Left:= 0;
Rect.Top:= 0;
Rect.Right:= 32;
Rect.Bottom:= 32;

hIcon:= ExtractIcon(GetModuleHandle(0), AIconFileName, 26);
try
with TBitmapImage.Create(WizardForm) do begin
Left:= ScaleX(15);
Top:= ScaleY(68);
Width:= 32;
Height:= 32;
with Bitmap do begin
Width:= 32;
Height:= 32;
Canvas.Brush.Color:= clBtnFace;
Canvas.FillRect(Rect);
DrawIconEx(Canvas.Handle, 0, 0, HIcon, 32, 32, 0, 0, DI_NORMAL);
end;
Parent:= MyNewPage.Surface;
end;
finally
DestroyIcon(hIcon);
end;

hIcon:= ExtractIcon(GetModuleHandle(0), AIconFileName, 19);
try
with TBitmapImage.Create(WizardForm) do begin
Left:= ScaleX(15);
Top:= ScaleY(138);
Width:= 32;
Height:= 32;
with Bitmap do begin
Width:= 32;
Height:= 32;
Canvas.Brush.Color:= clBtnFace;
Canvas.FillRect(Rect);
DrawIconEx(Canvas.Handle, 0, 0, HIcon, 32, 32, 0, 0, DI_NORMAL);
end;
Parent:= MyNewPage.Surface;
end;
finally
DestroyIcon(hIcon);
end;
except
end;

with TNewStaticText.Create(WizardForm) do begin
Width:= WizardForm.InnerNotebook.Width;
Height:= ScaleY(26);
WordWrap:= True;
Caption:= ExpandConstant('{cm:PageTextHeader}');
Parent:= MyNewPage.Surface;
end;

MyRadioBtn_1:= TNewRadioButton.Create(WizardForm);
with MyRadioBtn_1 do begin
Top:= ScaleY(50);
Width:= ScaleX(150);
Caption:= ExpandConstant('{cm:MyRadioCaption_1}');
OnClick:= @RadBtnOnClick;
Parent:= MyNewPage.Surface;
end;

with TNewStaticText.Create(WizardForm) do begin
Left:= ScaleX(60);
Top:= ScaleY(68);
Width:= WizardForm.InnerNotebook.Width - ScaleX(60);
Height:= ScaleY(26);
WordWrap:= True;
Caption:= ExpandConstant('{cm:MyText_1}');
Parent:= MyNewPage.Surface;
end;

MyRadioBtn_2:= TNewRadioButton.Create(WizardForm);
with MyRadioBtn_2 do begin
Top:= ScaleY(120);
Width:= ScaleX(150);
Caption:= ExpandConstant('{cm:MyRadioCaption_2}');
Checked:= True;
OnClick:= @RadBtnOnClick;
Parent:= MyNewPage.Surface;
end;

with TNewStaticText.Create(WizardForm) do begin
Left:= ScaleX(60);
Top:= ScaleY(138);
Width:= WizardForm.InnerNotebook.Width - ScaleX(60);
Height:= ScaleY(26);
WordWrap:= True;
Caption:= ExpandConstant('{cm:MyText_2}');
Parent:= MyNewPage.Surface;
end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID > wpSelectDir) and (PageID < wpInstalling) and (MyRadioBtn_1.Checked) then
Result:= True;
end;

procedure InitializeWizard();
begin
GetInstTypePage();
WizardForm.DiskSpaceLabel.Hide;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if not IsChecked then begin
case CurPageID of
wpSelectDir: begin
WizardForm.Caption:= FmtMessage(ExpandConstant('{cm:Extracted}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
WizardForm.PageNameLabel.Caption:= ExpandConstant('{cm:ExtractedFolder}');
WizardForm.PageDescriptionLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder2}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
WizardForm.SelectDirLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder3}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
if IsChecked then
WizardForm.DirEdit.Text := ExpandConstant( '{pf}\{#SetupSetting("AppName")}' ) else
WizardForm.DirEdit.Text := ExpandConstant( '{src}\{#SetupSetting("AppName")}' );
end;
wpInstalling: begin
WizardForm.PageNameLabel.Caption:= ExpandConstant('{cm:Installing}');
WizardForm.PageDescriptionLabel.Caption:= FmtMessage(ExpandConstant('{cm:InstallingLabel}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
end;
wpFinished: begin
WizardForm.FinishedHeadingLabel.Caption:= FmtMessage(ExpandConstant('{cm:FinishedHeadingLabel}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
WizardForm.FinishedLabel.Caption:= FmtMessage(ExpandConstant('{cm:FinishedLabelNoIcons}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
end;
end;
end;
end;
хочу сделать так http://fs5.directupload.net/images/160306/temp/bibxqnzp.jpg (http://fs5.directupload.net/images/160306/bibxqnzp.jpg)
может кто поможет исправить скрипт
или скрипт на подобие такого

ZVSRus
06-03-2016, 16:19
хочу сделать так
Посмотри по данному адресу, может подойдет.
http://krinkels.org/threads/kak-zadat-kartinku-v-zavisimosti-ot-dvux-radioknopok.2129/

astafev_roma
06-03-2016, 17:10
Доброго времени суток, подскажите как сделать создание символьных ссылок на файлы находящиеся в определенной папке при установке:

Исходная папка с файлами: {app} \ plugins
Конечная с символьными ссылками: {app} \ tools \ project \ plugins



procedure CreateHardLink();
begin
If BtnGetChecked(plugins_CheckBox) then
begin
... код для создания ссылок ...
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep = ssPostInstall then
begin
CreateHardLink()
end;
end;

kotyarko@fb
06-03-2016, 17:24
astafev_roma, Procedure CreateHardLink();
var
ResultCode: Integer;
begin
if BtnGetChecked(plugins_CheckBox) then
Exec(ExpandConstant('{cmd}'), '/C MKLINK "Имя_создаваемой_ссылки" "Назначение_ссылки"', ExpandConstant('{app}'), SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;

vadjliss
06-03-2016, 22:19
парни помогите вот скрипт
ни как не могу понять
как сделать что бы программа установилась как положено
и так же распаковалась портабле на рабочий стол
уже голову сломал.
ну если кому не трудно исправьте скрипт

#include "botva2.iss"

#define AppName "Ashampoo Photo Commander 14"
#define AppVersion "14.0.4"
#define AppPublisher "Ashampoo"
#define AppURL "http://dilan.at.ua/"
#define AppExeName "apc.exe"

[Setup]
AppName=Ashampoo Photo Commander 14
AppVersion=14.0.4
AppPublisher={#AppPublisher}
AppPublisherURL={#AppURL}
AppSupportURL={#AppURL}
AppUpdatesURL={#AppURL}
DefaultDirName={pf}\Ashampoo Photo Commander 14
OutputDir=.
PrivilegesRequired=admin
Compression=lzma/ultra64
SolidCompression=true
InternalCompressLevel=ultra64

[Files]
DestName: "WizardForm.BitmapImage1.bmp"; Source: "stac.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage2.bmp"; Source: "port neaktiv.bmp"; Flags: dontcopy solidbreak

Source: "C:\Users\WW-W\Desktop\Ashampoo Photo Commander 14 14_0_4\app\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "C:\Users\WW-W\Desktop\Ashampoo Photo Commander 14 14_0_4\app\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs

Source: port neaktiv.bmp; DestDir: {tmp}; Flags: dontcopy nocompression
Source: 1.bmp; DestDir: {tmp}; Flags: dontcopy nocompression
Source: 2.bmp; DestDir: {tmp}; Flags: dontcopy nocompression
Source: stac.bmp; DestDir: {tmp}; Flags: dontcopy nocompression
Source: eng.png; DestDir: {tmp}; Flags: dontcopy nocompression
Source: Portable.png; DestDir: {tmp}; Flags: dontcopy nocompression
Source: rus.png; DestDir: {tmp}; Flags: dontcopy nocompression
Source: Installer net.png; DestDir: {tmp}; Flags: dontcopy nocompression
Source: b2p.dll; DestDir: {tmp}; Flags: dontcopy nocompression
Source: botva2.dll; Flags: dontcopy

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked


[Icons]
Name: {commondesktop}\Skype; Filename: {app}\apc.exe; Tasks: desktopicon

[Code]
var
PortablePanel,InstallerPanel,RusFlag,EngFlag, PortableFlagPanel, InstallerFlagPanel: TPanel;
sLang, Slang2: string;
Portable,Installer, RusLang, EngLang: TNewRadioButton;
NewBox,NewGroupBox3: TNewGroupBox;
Bevel3: TBevel;
BitmapImage1,BitmapImage2: TBitmapImage;

function InitializeSetup(): Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\rus.png')) then ExtractTemporaryFile('rus.png');
if not FileExists(ExpandConstant('{tmp}\eng.png')) then ExtractTemporaryFile('eng.png');

if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');

if not FileExists(ExpandConstant('{tmp}\Installer net.png')) then ExtractTemporaryFile('Installer net.png');
if not FileExists(ExpandConstant('{tmp}\Portable.png')) then ExtractTemporaryFile('Portable.png');

if not FileExists(ExpandConstant('{tmp}\port neaktiv.bmp')) then ExtractTemporaryFile('port neaktiv.bmp');
if not FileExists(ExpandConstant('{tmp}\stac.bmp')) then ExtractTemporaryFile('stac.bmp');
Result := True;
end;

procedure CopmpClick(Sender: TObject);
begin
case TNewRadioButton(Sender) of
RusLang:
begin
sLang := 'rus';
sLang2 := 'eng';
if Portable.Checked then
Portable.OnClick(Portable);
if Installer.Checked then
Installer.OnClick(Installer);
end;
EngLang:
begin
sLang := 'eng';
sLang2 := 'rus';
if Portable.Checked then
Portable.OnClick(Portable);
if Installer.Checked then
Installer.OnClick(Installer);
end;
Portable:
begin
PortablePanel.Show;
PortableFlagPanel.Show;
InstallerPanel.Show;
ImgLoad(PortableFlagPanel.Handle, ExpandConstant('{tmp}\' + sLang + '.png'), ScaleX(0), ScaleY(0),
ScaleX(40), ScaleY(20), True, True);
ImgApplyChanges(PortableFlagPanel.Handle);
InstallerFlagPanel.Hide;
end;
Installer:
begin
InstallerPanel.Hide;
PortablePanel.Hide;
InstallerFlagPanel.Show;
ImgLoad(InstallerFlagPanel.Handle, ExpandConstant('{tmp}\' + sLang + '.png'), ScaleX(0), ScaleY(0),
ScaleX(40), ScaleY(20), True, True);
ImgApplyChanges(InstallerFlagPanel.Handle);
PortableFlagPanel.Hide;
end;
end;
end;

procedure InitializeWizard();
begin
WizardForm.DiskSpaceLabel.Hide;
WizardForm.SelectDirBitmapImage.Hide;
sLang := 'rus';
sLang2 := 'eng';

NewGroupBox3 := TNewGroupBox.Create(WizardForm);
with NewGroupBox3 do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(0);
Width := ScaleX(417);
Height := ScaleY(183);
Caption := 'Пожалуйста, выберите версию:';
end;

Bevel3 := TBevel.Create(WizardForm);
with Bevel3 do
begin
Parent := NewGroupBox3;
Left := ScaleX(208);
Top := ScaleY(22);
Width := ScaleX(2);
Height := ScaleY(148);
end;

PortablePanel := TPanel.Create(WizardForm);
with PortablePanel do
begin
Parent := NewGroupBox3;
Left := ScaleX(248);
Top := ScaleY(56);
Width := ScaleX(122);
Height := ScaleY(112);
BevelOuter := bvNone;
ParentBackground := True;
end;

InstallerPanel := TPanel.Create(WizardForm);
with InstallerPanel do
begin
Parent := NewGroupBox3;
Left := ScaleX(32);
Top := ScaleY(56);
Width := ScaleX(122);
Height := ScaleY(112);
BevelOuter := bvNone;
ParentBackground := True;
end;

InstallerFlagPanel := TPanel.Create(WizardForm);
with InstallerFlagPanel do
begin
Parent := NewGroupBox3;
Left := ScaleX(106);
Top := ScaleY(145);
Width := ScaleX(40);
Height := ScaleY(20);
BevelOuter := bvNone;
ParentBackground := True;
end;

PortableFlagPanel := TPanel.Create(WizardForm);
with PortableFlagPanel do
begin
Parent := NewGroupBox3;
Left := ScaleX(326);
Top := ScaleY(145);
Width := ScaleX(40);
Height := ScaleY(20);
BevelOuter := bvNone;
ParentBackground := True;
end;

BitmapImage1 := TBitmapImage.Create(WizardForm);
with BitmapImage1 do
begin
Parent := NewGroupBox3;
Left := ScaleX(32);
Top := ScaleY(56);
Width := ScaleX(122);
Height := ScaleY(112);
ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
end;


BitmapImage2 := TBitmapImage.Create(WizardForm);
with BitmapImage2 do
begin
Parent := NewGroupBox3;
Left := ScaleX(248);
Top := ScaleY(56);
Width := ScaleX(122);
Height := ScaleY(112);
ExtractTemporaryFile('WizardForm.BitmapImage2.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage2.bmp'));
end;

Portable := TNewRadioButton.Create(WizardForm);
with Portable do
begin
Parent := NewGroupBox3;
Left := ScaleX(264);
Top := ScaleY(16);
Width := ScaleX(200);
Height := ScaleY(17);
Caption := 'Портативная';
OnClick:=@CopmpClick;
Checked := True;
end;

Installer := TNewRadioButton.Create(WizardForm);
with Installer do
begin
Parent := NewGroupBox3;
Left := ScaleX(32);
Top := ScaleY(16);
Width := ScaleX(200);
Height := ScaleY(17);
Caption := 'Стационарная';
OnClick:=@CopmpClick;
Checked := True;
end;

NewBox := TNewGroupBox.Create(WizardForm);
with NewBox do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(210);
Top := ScaleY(185);
Width := ScaleX(207);
Height := ScaleY(50);
Caption := 'Язык интерфейса:';
end;

EngLang := TNewRadioButton.Create(WizardForm);
with EngLang do
begin
Parent := NewBox;
Left := ScaleX(100);
Top := ScaleY(23);
Width := ScaleX(80);
Height := ScaleY(17);
Caption := 'Английский';
Checked := True;
OnClick:=@CopmpClick;
end;

RusLang := TNewRadioButton.Create(WizardForm);
with RusLang do
begin
Parent := NewBox;
Left := ScaleX(25);
Top := ScaleY(23);
Width := ScaleX(60);
Height := ScaleY(17);
Caption := 'Русский';
OnClick:=@CopmpClick;
Checked :=True;
end;

ImgLoad(PortablePanel.Handle,ExpandConstant('{tmp}\Portable.png'),ScaleX(0),ScaleY(0),ScaleX(122),Sc aleY(112),True,True);
ImgApplyChanges(PortablePanel.Handle);

ImgLoad(InstallerPanel.Handle,ExpandConstant('{tmp}\Installer net.png'),ScaleX(0),ScaleY(0),ScaleX(122),ScaleY(112),True,True);
ImgApplyChanges(InstallerPanel.Handle);

ImgLoad(InstallerFlagPanel.Handle,ExpandConstant('{tmp}\rus.png'),ScaleX(0),ScaleY(0),ScaleX(40),Sca leY(20),True,True);
ImgApplyChanges(InstallerFlagPanel.Handle);

ImgLoad(PortableFlagPanel.Handle,ExpandConstant('{tmp}\eng.png'),ScaleX(0),ScaleY(0),ScaleX(40),Scal eY(20),True,True);
ImgApplyChanges(PortableFlagPanel.Handle);
end;

procedure DeinitializeSetup();
begin
gdipShutdown;
end;

vadjliss
07-03-2016, 08:07
парни посмотрите скрипт музыка играет а кнопки на выключение музыки нет
скрин http://fs5.directupload.net/images/160307/temp/fobycb28.jpg (http://fs5.directupload.net/images/160307/fobycb28.jpg)
ссылка на скрипт скрипт (https://yadi.sk/d/eePWwNv1pxUa8)

ZVSRus
07-03-2016, 10:29
как сделать что бы программа установилась как положено


[Files]
// Строки после картинок
Source: "D:\Files\*"; DestDir: "{app}"; Flags: ignoreversion; Check: InstallerCheck;
Source: "D:\dll\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: PortableCheck;

[Code*]
function InitializeSetup(): Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\rus.png')) then ExtractTemporaryFile('rus.png');
if not FileExists(ExpandConstant('{tmp}\eng.png')) then ExtractTemporaryFile('eng.png');

if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');

if not FileExists(ExpandConstant('{tmp}\Installer net.png')) then ExtractTemporaryFile('Installer net.png');
if not FileExists(ExpandConstant('{tmp}\Portable.png')) then ExtractTemporaryFile('Portable.png');

if not FileExists(ExpandConstant('{tmp}\port neaktiv.bmp')) then ExtractTemporaryFile('port neaktiv.bmp');
if not FileExists(ExpandConstant('{tmp}\stac.bmp')) then ExtractTemporaryFile('stac.bmp');
Result := True;
end;

function InstallerCheck: Boolean;
begin
Result := Installer.Checked;
end;

function PortableCheck: Boolean;
begin
Result := Portable.Checked;
end;

procedure CopmpClick(Sender: TObject);
begin
case TNewRadioButton(Sender) of
RusLang:
begin
sLang := 'rus';
sLang2 := 'eng';
if Portable.Checked then
Portable.OnClick(Portable);
if Installer.Checked then
Installer.OnClick(Installer);
end;
EngLang:
begin
sLang := 'eng';
sLang2 := 'rus';
if Portable.Checked then
Portable.OnClick(Portable);
if Installer.Checked then
Installer.OnClick(Installer);
end;
Portable:
begin
PortablePanel.Show;
PortableFlagPanel.Show;
InstallerPanel.Show;
ImgLoad(PortableFlagPanel.Handle, ExpandConstant('{tmp}\' + sLang + '.png'), ScaleX(0), ScaleY(0),
ScaleX(40), ScaleY(20), True, True);
ImgApplyChanges(PortableFlagPanel.Handle);
InstallerFlagPanel.Hide;

WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{src}')) + 'AshampooPhotoCommanderPortable';
WizardForm.Caption:= FmtMessage(ExpandConstant('Распаковка — %1'), [ExpandConstant('{#SetupSetting("AppName")}')]);
end;
Installer:
begin
InstallerPanel.Hide;
PortablePanel.Hide;
InstallerFlagPanel.Show;
ImgLoad(InstallerFlagPanel.Handle, ExpandConstant('{tmp}\' + sLang + '.png'), ScaleX(0), ScaleY(0),
ScaleX(40), ScaleY(20), True, True);
ImgApplyChanges(InstallerFlagPanel.Handle);
PortableFlagPanel.Hide;

WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{pf}')) + 'Ashampoo Photo Commander 14';
WizardForm.Caption:= FmtMessage(SetupMessage(msgSetupWindowTitle), [ExpandConstant('{#SetupSetting("AppName")}')]);
end;
end;
end;

vadjliss
07-03-2016, 11:47
спасибо но зараза ошибку выдаёт может что то не так?
http://fs5.directupload.net/images/160307/temp/a7sx3nom.jpg (http://fs5.directupload.net/images/160307/a7sx3nom.jpg)
всё разобрался
а, как на счёт 1 вопроса про кнопку выключения музыки
может кто то разобрался с скриптом
музыка играет а кнопки на выключение музыки нет

kotyarko@fb
07-03-2016, 13:02
парни посмотрите скрипт музыка играет а кнопки на выключение музыки нет
ссылка на скрипт» Это ссылка не на скрипт, а на собранную программу.




© OSzone.net 2001-2012