Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]
Irenis, можно взглянуть на один из проблемных скриптов? На счет того, что разные программы устанавливаются в одну и ту же папку, первое, что приходит на ум: для всех приложений, скорее всего, Вы используете один AppId.
Пример скрипта 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
Как сделать чтобы при удалении не было никаких сообщений ?
Смотреть скриншоты!
Смотреть скриншоты!»
А если не смотреть? И чё так нагло?
[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;
Всем Доброго времени суток. Требуется подсказка, или небольшой пример.
Как сделать у Лейблов, таких как, ну например: WelcomeLabel1, WelcomeLabel2, FinishedLabel, BeveledLabel чтобы фон был прозрачным (а точнее без фонов).
kotyarko@fb
04-03-2016, 17:05
Как сделать у Лейблов, таких как, ну например: WelcomeLabel1, WelcomeLabel2, FinishedLabel, BeveledLabel чтобы фон был прозрачным (а точнее без фонов). » Лейблы они только по названию, а так это TNewStaticText.
Есть два варианта:
http://krinkels.org/threads/transparentstatic.2539/;
Создать вместо них лейблы, со свойством Transparent.
может в новой версии просто нужно дописывать какие то строки в коде? »
На счет новых версий не знаю. В прежних версия директива отключения страницы выбора папки по умолчанию была установлена в no. Попробуйте принудительно установить в no - DisableSelectDirPage=no - и посмотрите, что получится.
Может ли inno setup как то определять, что файлы .exe идентичны и из за этого устанавливать по одному пути? »
Идентичность файлов в выборе пути установки роли не имеет. Инно определяет наличие предыдущей установки согласно записи в реестре, в HKLM\Microsoft\Windows\CurentVersion\Uninstall.
Как сделать у Лейблов, таких как, ну например: WelcomeLabel1, WelcomeLabel2, FinishedLabel, BeveledLabel чтобы фон был прозрачным »
Для ANSI компилятора решение написали выше. Для UNICODE - установить значение свойства Transparent контрола в True.
Есть два варианта:
По пункту 2 может есть небольшой примерчик. Так-как Модуль TransparentStatic по моему не дружит с iswin7
Во всяком случае с BeveledLabel ничего не происходит, белая полоса на стекле так и осталась.
Модуль нашёл на Форуме Krinkels.org
Разобрался. И на ANSI и Unicode всё работает. У Unicode функционала по более будет!
Но загвоздка в одном так и осталась. Как быть с BeveledLabel + IsWin7 т.е. белая полоса на стекле.
На скрине видно. PS. На форуме Krinkels.org наткнулся точно на такой же вопрос, ответа не последовало.
Неужели нельзя как-то исправить.
OldGamer
05-03-2016, 06:28
Здравствуйте!
Как сделать чтобы деинсталлятор удалял папку с файлами, кот. создаётся при запуске самой программы.
Папка образуется по следующему пути: C:\Users\"Имя пользователя"\AppData\Roaming\MyProg
Как сделать чтобы деинсталлятор удалял папку с файлами »
[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)
может кто поможет исправить скрипт
или скрипт на подобие такого
хочу сделать так
Посмотри по данному адресу, может подойдет.
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)
как сделать что бы программа установилась как положено
[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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.