Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]
tuz-veta
28-11-2013, 04:34
Ребята у меня такая проблема!
запускаю инсталлятор и устанавливаю компоненты которые мне надо.
Потом запускаю еще раз инсталлятор и снимаю галочки с тех компонентов которые я установил,мне выдает вот что
http://4put.ru/pictures/small/789/2424461.jpg (http://4put.ru/view-max-picture.php?id=2424461)
как сделать если я снимаю галочки с компонентов которые были установленные
то чтоб эти компоненты удалялись?
Grogan508
28-11-2013, 12:25
Ребята помогите пожалуйста. Вот скрипт [http://rghost.ru/50530356/url]. Собрал из разных примеров, работает вроде нормально, но имеются небольшие проблемы. Отмена создания ярлыков не отрабатывает, ни на рабочем столе, ни в меню пуск и еще не видно лого (если убрать прозрачность, то все в порядке). Смущает распаковка портативной версии (создается деинстал). Буду рад любой помощи.
Всем привет!
Подскажите плиз, можно для стандартных функций создания страниц (CreateInputQueryPage например) поставить ограничение на ввод символов, чтоб можно было вводить только латиницу, например? Или это только свою формочку со своим же обработчиком писать надо?
UPD. Уже не надо, разобралась:)
procedure EditKeyPress(Sender: TObject; var Key: Char); // только для циферок
begin
if ((Key < #48) or (Key > #57)) and ((Key <> #8 )) then Key:= #0;
end;
procedure InitializeWizard;
begin
...
DefPortPage:= CreateInputQueryPage(wpSelectComponents,
ExpandConstant('{cm:AskPort}'), ExpandConstant('{cm:AskPort2}'),
ExpandConstant('{cm:AskPort}'));
DefPortPage.Add(ExpandConstant('{cm:port}'), false);
DefPortPage.Edits[0].OnKeyPress:= @EditKeyPress;
...
end;
Dimon585h
28-11-2013, 20:22
Всем привет! Мне нужна ваша помощь, я хочу сделать так чтобы, при установке файла(ов) он создавал сам папки, а пользователь только выбирал папку куда установить, например:
Пользователь выбирает папку - C:\Games\DiZ\
А файл устанавливается и по пути сам создаёт папки heroes и magic - C:\Games\DiZ\heroes\magic\и собственно сам файл...
Как это сделать?
Помогите.
dima.dmitrienko.71@fb
28-11-2013, 20:39
Доброе время суток вы не можете мне помочь.Когда выбираешь куда устанавливать файлы потом открывается сам список того что хочешь установить. Как сделать так чтобы когда наводишь на название какого-то файла выскакивала картинка? 107331
//ArcExtract - распаковка архивов freearc
//ZipExtract - распаковка zip, 7z, tar архивов
//PCFExtract - распаковка pcf (файлы precomp)
//NextDisk - запрос следующего диска
//SrepExtract - распаковка архивов srep
//RepExtract - рапаковка архивов rep
//OggDecode - ogg to wav
//TakDecode - tak to wav
//ZipPak - упаковка zip, 7z архивов
//в каждом параметре прописано число - это шаг прогресс бара(можно изменить на любое)
//исходя из количества распаковываемой инфы указываем IsExtractBarMax - максимальное значение прогресс бара(всегда прибавляем 10, это для временных файлов)
//пример у нас два архива зип 10+10 и еще для времменных файлов +10 и того 30. значит указываем так - IsExtractBarMax "30"
//или например у нас одын фриарковый архив и в нем 5 огг файлов для конвертирования, получаем 10 + 5*5 =35 и прибавлем 10 для времменных файлов.
//чисто математика )
#define ArcExtract "17"
#define ZipExtract "0"
#define SrepExtract "0"
#define RepExtract "0"
#define PrecompExtract "0"
#define OggDecode "0"
#define TakDecode "0"
#define ZipPak "0"
#define IsExtractBarMax "17"
;; ниже имя игры
#define MyAppName "World_of_Tanks"
;; ниже версия
#define MyAppVersion "1.0"
;; ниже автор
#define MyAppPublisher "The KillerMak"
;; ниже имя exe файла, на кторорый ссылается ярлык
#define MyAppExeName "WotLa.exe"
;; ниже версия, которая записывается в свойствах
#define vers1 "1.1.1.2"
;; ниже сколько требуется места на установку, в МБ
#define NeedSize1 "16000"
;Цвет инсталятора
#define colour "clblack"
[Setup]
AppName={#MyAppName}
AppverName={#MyAppVersion}
AppVersion={#MyAppVersion}
VersionInfoVersion={#vers1}
VersionInfoTextVersion={#vers1}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
WizardSmallImageFile=Files\WizardSmallImage.bmp
SetupIconFile=Files\icon.ico
WizardImageFile=Files\WizardImg.bmp
ShowTasksTreeLines=yes
OutputDir=Output
AllowCancelDuringInstall=no
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[CustomMessages]
rus.WelcomeLabel1=
rus.WelcomeLabel2=
rus.FinisLabel1=
rus.FinisLabel2=
rus.Tasks1=Установить &PhysX
rus.Tasks2=Установить &Microsoft Visual C++ Redist
rus.Tasks3=Обновить &DirectX (требуется интернет соединение)
rus.Prog=Дополнительное программное обеспечение:
rus.NeedSpace=Требуется места на диске:
rus.FreeSpace=Доступно места на диске:
rus.ru1=В пути установки присутствуют русские буквы, что недопустимо.
rus.ru2=Пожалуйста, повторите ввод.
[Tasks]
[Types]
Name: full; Description: Full installation; Flags: iscustom
[Run]
[Components]
Name: "mon12"; Description: "1.Удобные прицелы:";
Name: "mon\1"; Description: "Прицел от Джова"; Flags: exclusive
Name: "mon\2"; Description: "Прицел от Кирилла Орешкина"; Flags: exclusive
Name: "mona"; Description: "2.УГН.Углы горизонтальной наводки.:"; Types:
Name: "mona\1"; Description: "Уголком"; Flags: exclusive
Name: "mona\2"; Description: "Полукругом"; Flags: exclusive
Name: "mona789789"; Description: "3.Удаление черноты в снайперском режиме.:"; Types:
Name: "mona3"; Description: "4.Панель повреждений.:"; Types:
Name: "mona\3"; Description: "Простай с уроном."; Flags: exclusive
Name: "mona\4"; Description: "Боевой интерфейс от игрока zayaz."; Flags: exclusive
Name: "monaa3"; Description: "5.Настраиваемое меню команд.:"; Types:
Name: "mona33"; Description: "6.Командирская камера.:"; Types:
Name: "mona333"; Description: "7.Зум в снайперчком прицеле.:"; Types:
Name: "mona3333"; Description: "8.Цветные пробитая танка.:"; Types:
Name: "mona33334"; Description: "9.Подробное описаний умений и навыков.:"; Types:
//Name: "mona333345"; Description: "10.Автоматическая стрельба после перезарядки орудия.:"; Types:
//Name: "mon\17896"; Description: "Стандартный xvm"; Flags: exclusive
//Name: "mon\169"; Description: "xvm с Оленимером"; Flags: exclusive
Name: "mon\17896"; Description: "10.Комплесный мод xvm.:";Types:
Name: "mona12"; Description: "11.Улутшение освещение(+fps).:"; Types:
//Name: "mona1244"; Description: "Часы в ангаре.:"; Types:
Name: "mona12222"; Description: "12.Статистика за сесию(за весь день).:"; Types:
[Files]
Source: "E:\WG\2\Прицел джов\*"; DestDir: "{app}"; Components: mon\1; Flags: recursesubdirs
Source: "E:\WG\2\Приыел от кирила орешкина\*"; DestDir: "{app}"; Components: mon\2; Flags: recursesubdirs
Source: "E:\WG\2\Угн Уголком\*"; DestDir: "{app}"; Components: mona\1; Flags: recursesubdirs
Source: "E:\WG\2\угн полукругом\*"; DestDir: "{app}"; Components: mona\2; Flags: recursesubdirs
Source: "E:\WG\2\Удаление черноты\*"; DestDir: "{app}"; Components: mona789789; Flags: recursesubdirs
Source: "E:\WG\2\Дамаг панель\*"; DestDir: "{app}"; Components: mona\3; Flags: recursesubdirs
Source: "E:\WG\2\интерфейс от зайца\*"; DestDir: "{app}"; Components: mona\4; Flags: recursesubdirs
Source: "E:\WG\2\Настраиваемое меню команд для World of Tanks\*"; DestDir: "{app}"; Components: monaa3; Flags: recursesubdirs
Source: "E:\WG\2\отдаление\*"; DestDir: "{app}"; Components: mona33; Flags: recursesubdirs
Source: "E:\WG\2\зум\*"; DestDir: "{app}"; Components: mona333; Flags: recursesubdirs
Source: "E:\WG\2\Цветные пробития\*"; DestDir: "{app}"; Components:mona3333; Flags: recursesubdirs
Source: "E:\WG\2\Описание навыков\*"; DestDir: "{app}"; Components:mona33334; Flags: recursesubdirs
//Source: "E:\WG\2\Автоматическая стрельба после перезарядки орудия\*"; DestDir: "{app}"; Components: mona333345; Flags: recursesubdirs
Source: "E:\WG\2\xvm\*"; DestDir: "{app}"; Components: mon\17896; Flags: recursesubdirs
//Source: "E:\WG\2\оленимер\*"; DestDir: "{app}"; Components: mon\169; Flags: recursesubdirs
Source: "E:\WG\2\Улошение графики\*"; DestDir: "{app}"; Components: mona12; Flags: recursesubdirs
//Source: "E:\WG\2\Часы в ангаре\*"; DestDir: "{app}"; Components: mona1244; Flags: recursesubdirs
Source: "E:\WG\2\сесия\*"; DestDir: "{app}"; Components: mona12222; Flags: recursesubdirs
Source: Files\logo.bmp; Flags: dontcopy
Source: Files\BASS.dll; Flags: dontcopy
Source: Files\sound.mp3; Flags: dontcopy nocompression
Source: Files\MusicButton.bmp; Flags: dontcopy
Source: Files\DirBitmap.bmp; DestDir: "{tmp}"; Flags: dontcopy
Source: Files\GroupBitmap.bmp; DestDir: "{tmp}"; Flags: dontcopy
///////////////////////////////////////////////////////Файлы для распаковки======================================================================
;;-----------------------------------------------------------///////////////////////////--------------------------------------------------------
[Icons]
[UninstallDelete]
Type: filesandordirs; Name: {app}; Type: dirifempty;
[Code]
#ifdef colour
const
Color = {#colour}; //===Цвет инсталятора=======
#endif
//-------------------------------------------Начало распаковка файлов--------------------------------------------------------------------
var
IsExtractProgressbar: TNewProgressBar;
ArcRes: Extended;
Folder: String;
ArcCount: Boolean;
FolderSize: Integer;
//------------------------------------------------------------//
procedure InitializeWizard2();
begin
IsExtractProgressbar:=TNewProgressBar.Create(WizardForm);
with IsExtractProgressbar do begin
Parent:=WizardForm.ProgressGauge.Parent;
SetBounds(WizardForm.ProgressGauge.Left, WizardForm.ProgressGauge.Top ,
WizardForm.ProgressGauge.Width, WizardForm.ProgressGauge.Height);
Max:={#IsExtractBarMax};
end;
end;
//------------------------------------------------------------//
//====================//
#include "Files\include.iss"
//====================//
//------------------------------------------------------------//
procedure IsExtract();
begin
WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles);
WizardForm.CancelButton.Enabled:=false;
//распаковка временных файлов==========================
//распаковка архивов=======================================
//ArcExtract(ExpandConstant('{src}\data-g.bin'), ExpandConstant('{app}'));
(* дальше идут различные примеры
//DeleteFile(ExpandConstant('{app}\data-c.tar'));
ZipPak('-tzip', '-mx0', ExpandConstant('{app}\pak.zip'), ExpandConstant('{app}\data'));
ZipPak('-t7z', '-mx3', ExpandConstant('{app}\pak.7z'), ExpandConstant('{app}\data'));
ArcExtract(ExpandConstant('{src}\data.arc'), ExpandConstant('{app}'));
ArcExtract(ExpandConstant('{app}\data.arc'), ExpandConstant('{app}\files'));
ZipExtract(ExpandConstant('{src}\tak.7z'), ExpandConstant('{app}'));
ZipExtract(ExpandConstant('{src}\tak.zip'), ExpandConstant('{app}'));
SrepExtract(ExpandConstant('{app}\srep.srp'), ExpandConstant('{app}\srep.dat'));
RepExtract(ExpandConstant('{app}\rep.rep'));
NextDisk(2, ExpandConstant('{src}\setup-2.arc'));
PcfExtract (ExpandConstant('{app}\precomp.pcf'), ExpandConstant('{app}\file.tart')); //precomp
OggDecode; //Ogg
TakDecode; //TAK
*)
WizardForm.ProgressGauge.Hide;
end;
//------------------------------------------------------------//
procedure CurStepChanged2(CurStep: TSetupStep);
begin
if CurStep = ssInstall then begin
IsExtract();
end;
end;
//------------------------------------------------------------//
procedure CurPageChanged2(CurPageID: Integer);
begin
case CurPageID of
wpFinished: begin
WizardForm.NextButton.Left:=WizardForm.CancelButton.Left;
end;
end;
end;
////////////////////////////////////////////////////////////////////Конец распаковка файлов///////////////////////////////////////////////////////////////
//==================================================================Начало разметка формы=================================================================
var
FLabel1, FLabel2, WLabel1, WLabel2, PageNameLabel, PageDescriptionLabel,NeedSpaceLabel,FreeSpaceLabel: TLabel;
NeedSize:Integer;
FreeMB, TotalMB: Cardinal;
LogoImage: TBitmapImage;
ProgressBar1:TNewProgressBar;
const SmallWidth = 497;
//////---------------------------------------------------- музыка в инсталяторе
const
BASS_ACTIVE_STOPPED = 0;
BASS_ACTIVE_PLAYING = 1;
BASS_ACTIVE_STALLED = 2;
BASS_ACTIVE_PAUSED = 3;
BASS_SAMPLE_LOOP = 4;
var
mp3Handle: HWND;
mp3Name: String;
PlayButton, PauseButton, StopButton: TPanel;
PlayImage, PauseImage, StopImage: TBitmapImage;
PlayLabel, PauseLabel, StopLabel: TLabel;
MouseLabel: Tlabel;
AppPath: string;
function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean;
external 'BASS_Init@files:BASS.dll stdcall delayload';
function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): DWORD;
external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';
function BASS_Start(): Boolean;
external 'BASS_Start@files:BASS.dll stdcall delayload';
function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean;
external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';
function BASS_ChannelIsActive(handle: DWORD): Integer;
external 'BASS_ChannelIsActive@files:BASS.dll stdcall delayload';
function BASS_ChannelPause(handle: DWORD): Boolean;
external 'BASS_ChannelPause@files:BASS.dll stdcall delayload';
function BASS_Stop(): Boolean;
external 'BASS_Stop@files:BASS.dll stdcall delayload';
function BASS_Pause(): Boolean;
external 'BASS_Pause@files:BASS.dll stdcall delayload';
function BASS_Free(): Boolean;
external 'BASS_Free@files:BASS.dll stdcall delayload';
procedure PlayMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
PlayImage.Left := -96
end;
procedure PlayMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
PlayImage.Left := 0
end;
procedure PlayMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if PlayImage.Left <> -96 then PlayImage.Left := -192
end;
procedure PauseMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
PauseImage.Left := -128
end;
procedure PauseMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
PauseImage.Left := -32
end;
procedure PauseMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if PauseImage.Left <> -128 then PauseImage.Left := -224
end;
procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
PlayImage.Left := 0
PauseImage.Left := -32
end;
procedure PlayButtonOnClick(Sender: TObject);
begin
case BASS_ChannelIsActive(mp3Handle) of
BASS_ACTIVE_PAUSED:
begin
BASS_ChannelPlay(mp3Handle, False);
PlayButton.Hide
PauseButton.Show
end;
end;
end;
procedure PauseButtonOnClick(Sender: TObject);
begin
BASS_ChannelPause(mp3Handle);
PauseButton.Hide
PlayButton.Show
end;
procedure Music;
begin
ExtractTemporaryFile('MusicButton.bmp')
MouseLabel := TLabel.Create(WizardForm)
MouseLabel.Width := WizardForm.Width
MouseLabel.Height := WizardForm.Height
MouseLabel.Autosize := False
MouseLabel.Transparent := True
MouseLabel.OnMouseMove := @MouseMove
MouseLabel.Parent := WizardForm
PlayButton := TPanel.Create(WizardForm)
PlayButton.Left := 465
PlayButton.Top := 64
PlayButton.Width := 23
PlayButton.Height := 23
PlayButton.Cursor := crHand
PlayButton.ShowHint := True
PlayButton.Hint := 'Воспроизвести музыку'
PlayButton.OnClick := @PlayButtonOnClick
PlayButton.Parent := WizardForm
PlayImage := TBitmapImage.Create(WizardForm)
PlayImage.Left := 0
PlayImage.Top := 0
PlayImage.Width := 288
PlayImage.Height := 23
PlayImage.Enabled := False
PlayImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MusicButton.bmp'))
PlayImage.Parent := PlayButton
//
PlayImage.ReplaceColor:=$E2E2E2
PlayImage.ReplaceWithColor:=clBtnFace
PlayLabel := TLabel.Create(WizardForm)
PlayLabel.Width := PlayButton.Width
PlayLabel.Height := PlayButton.Height
PlayLabel.Autosize := False
PlayLabel.Transparent := True
PlayLabel.OnClick := @PlayButtonOnClick
PlayLabel.OnMouseDown := @PlayMouseDown
PlayLabel.OnMouseUp := @PlayMouseUp
PlayLabel.OnMouseMove := @PlayMouseMove
PlayLabel.Parent := PlayButton
PauseButton := TPanel.Create(WizardForm)
PauseButton.Left := 465
PauseButton.Top := 64
PauseButton.Width := 23
PauseButton.Height := 23
PauseButton.Cursor := crHand
PauseButton.ShowHint := True
PauseButton.Hint := 'Приостановить музыку'
PauseButton.OnClick := @PauseButtonOnClick
PauseButton.Parent := WizardForm
PauseImage := TBitmapImage.Create(WizardForm)
PauseImage.Left := -32
PauseImage.Top := 0
PauseImage.Width := 288
PauseImage.Height := 23
PauseImage.Enabled := False
PauseImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MusicButton.bmp'))
PauseImage.Parent := PauseButton
//
PauseImage.ReplaceColor:=$E2E2E2
PauseImage.ReplaceWithColor:=clBtnFace
PauseLabel := TLabel.Create(WizardForm)
PauseLabel.Width := PauseButton.Width
PauseLabel.Height := PauseButton.Height
PauseLabel.Autosize := False
PauseLabel.Transparent := True
PauseLabel.OnClick := @PauseButtonOnClick
PauseLabel.OnMouseDown := @PauseMouseDown
PauseLabel.OnMouseUp := @PauseMouseUp
PauseLabel.OnMouseMove := @PauseMouseMove
PauseLabel.Parent := PauseButton
end;
function InitializeSetup1(): Boolean;
begin
ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('sound.mp3');
mp3Name := ExpandConstant('{tmp}\sound.mp3');
BASS_Init(-1, 44100, 0, 0, 0);
mp3Handle := BASS_StreamCreateFile(FALSE, PChar(mp3Name), 0, 0, BASS_SAMPLE_LOOP);
BASS_Start();
BASS_ChannelPlay(mp3Handle, False);
Result := True;
end;
procedure DeinitializeSetup1();
begin
BASS_Stop();
BASS_Free();
end;
/////----------------------------------------------------- конец музыка в инсталяторе
procedure GetFreeSpaceCaption(Sender: TObject); /////Вычисление свободного места на диске
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := ExpandConstant('{cm:FreeSpace}')+ ' ' + FloatToStr(round(FreeMB/1024*100)/100) + ' Gb' else
FreeSpaceLabel.Caption := ExpandConstant('{cm:FreeSpace}') + ' ' + IntToStr(FreeMB)+ ' Mb';
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled := False else
WizardForm.NextButton.Enabled := True; end;
procedure GetNeedSpaceCaption; /////Вычисление требуемого места для установки
begin
if NeedSize > 1024 then
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace}') + ' ' + FloatToStr(round(NeedSize/1024*100)/100) + ' Mb' else
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace}') + ' ' + IntToStr(NeedSize)+ ' Mb';
end;
procedure InitializeWizard1();
begin
with WizardForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
WelcomeLabel1.Hide;
WelcomeLabel2.Hide;
FinishedHeadingLabel.Hide;
FinishedLabel.Hide;
ProgressGauge.Hide;
FileNameLabel.Hide;
StatusLabel.Top:=ScaleY(20);
WizardForm.DiskSpaceLabel.Hide;
end;
with WizardForm do
begin
WizardBitmapImage.Width := ScaleY (498);
WizardBitmapImage.Height := ScaleX (314);
WizardBitmapImage2.Width := ScaleY (498);
WizardBitmapImage2.Height := ScaleX (314);
WizardSmallBitmapImage.Left:= WizardForm.WizardSmallBitmapImage.Left - (SmallWidth - WizardForm.WizardSmallBitmapImage.Width) + 2 WizardSmallBitmapImage.Width:= SmallWidth
end;
begin
WLabel1 := TLabel.Create(WizardForm);
WLabel1.Left := ScaleX(40);
WLabel1.Top := ScaleY(150);
WLabel1.Width := ScaleX(240);
WLabel1.Height := ScaleY(100);
WLabel1.AutoSize := False;
WLabel1.WordWrap := True;
WLabel1.Font.Size := 8;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clWhite;
WLabel1.Font.Name:= 'Comic Sans MS'
WLabel1.ShowAccelChar := False;
WLabel1.Caption :=ExpandConstant('{cm:WelcomeLabel1}');
WLabel1.Transparent := True;
WLabel1.Parent := WizardForm.WelcomePage;
WLabel2 :=TLabel.Create(WizardForm);
WLabel2.Top := ScaleY(190);
WLabel2.Left := ScaleX(40);
WLabel2.Width := ScaleX(240);
WLabel2.Height := ScaleY(234);
WLabel2.AutoSize := False;
WLabel2.WordWrap := True;
WLabel2.Font.Size := 8;
WLabel2.Font.Style := [fsBold];
WLabel2.Font.Color:= clWhite;
WLabel2.Font.Name:= 'Comic Sans MS'
WLabel2.ShowAccelChar := False;
WLabel2.Caption := ExpandConstant('{cm:WelcomeLabel2}');
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
FLabel1 := TLabel.Create(WizardForm);
FLabel1.Left := ScaleX(40);
FLabel1.Top := ScaleY(150);
FLabel1.Width := ScaleX(240);
FLabel1.Height := ScaleY(54);
FLabel1.AutoSize := False;
FLabel1.WordWrap := True;
FLabel1.Font.Size := 8;
FLabel1.Font.Name := 'Comic Sans MS'
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clWhite;
FLabel1.ShowAccelChar := False;
FLabel1.Caption := ExpandConstant('{cm:FinisLabel1}');
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;
FLabel2 :=TLabel.Create(WizardForm);
FLabel2.Top := ScaleY(190);
FLabel2.Left := ScaleX(40);
FLabel2.Width := ScaleX(240);
FLabel2.Height := ScaleY(77);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;
FLabel2.Font.Size := 8;
FLabel2.Font.Name := 'Comic Sans MS'
FLabel2.Font.Style := [fsBold];
FLabel2.Font.Color:= clWhite;
FLabel2.ShowAccelChar := False;
FLabel2.Caption := ExpandConstant('{cm:FinisLabel2}');
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage;
end;
PageNameLabel:= TLabel.Create(WizardForm);
with PageNameLabel do
begin
SetBounds(WizardForm.PageNameLabel.Left, WizardForm.PageNameLabel.Top, WizardForm.PageNameLabel.Width - 32, WizardForm.PageNameLabel.Height)
AutoSize:= False; WordWrap:= True; Transparent:= True;
Font.Color:= clWhite;
Font.Style:= WizardForm.PageNameLabel.Font.Style;
Parent:= WizardForm.MainPanel;
end;
PageDescriptionLabel:= TLabel.Create(WizardForm);
with PageDescriptionLabel do
begin
SetBounds(WizardForm.PageDescriptionLabel.Left, WizardForm.PageDescriptionLabel.Top, WizardForm.PageDescriptionLabel.Width - 32, WizardForm.PageDescriptionLabel.Height)
AutoSize:= False; WordWrap:= True; Transparent:= True;
Font.Color:= clWhite;
Font.Style:= WizardForm.PageDescriptionLabel.Font.Style;
Parent:= WizardForm.MainPanel;
end;
Music //музыка в инсталяторе
NeedSize := {#NeedSize1};
NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(202);
Width := ScaleX(209);
Height := ScaleY(13);
end;
FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(220);
Width := ScaleX(209);
Height := ScaleY(13);
end;
with WizardForm do
begin
DirEdit.OnChange := @GetFreeSpaceCaption;
DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;
ProgressBar1:=TNewProgressBar.Create(WizardForm);
with WizardForm.ProgressGauge do
begin
ProgressBar1.Left := WizardForm.ProgressGauge.Left;
ProgressBar1.Top := WizardForm.ProgressGauge.Top;
ProgressBar1.min:=0;
ProgressBar1.Width :=WizardForm.ProgressGauge.Width;
ProgressBar1.Height := WizardForm.ProgressGauge.Height;
ProgressBar1.Parent := WizardForm.InstallingPage;
ProgressBar1.Max:=4;
end;
ExtractTemporaryFile('logo.bmp');
LogoImage := TBitmapImage.Create(WizardForm);
with LogoImage do
begin
Parent := WizardForm;
Left := ScaleX(10);
Top := ScaleY(318);
AutoSize:=true;
ReplaceColor:=clFuchsia;
ReplaceWithColor:=clBtnFace;
Bitmap.LoadFromFile(ExpandConstant('{tmp}\logo.bmp'));
end;
end;
Procedure CurPageChanged1(CurPageID: Integer);
Begin
PageNameLabel.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption:= WizardForm.PageDescriptionLabel.Caption;
begin
if CurPageID=wpSelectDir then
begin
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:=False
end;end;
end;
//=======================================Конец разметка формы=======================================
function NextButtonClick1(CurPageID: Integer): Boolean;
var
i,j: integer;
s,c: string;
begin
Result := True;
if CurPageID = wpSelectDir then
begin
c := 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
for i:=1 to length(WizardForm.DirEdit.text) do
for j:=1 to length(c) do
begin
if WizardForm.DirEdit.text[i] = c[j] then //{app} Содержит русские символы
begin
s := ExpandConstant('{cm:ru1}')+#13#13+ExpandConstant('{cm:ru2}');
MsgBox(s, mbError, mb_Ok);
Result := False ; //Запрет перехода на следующую страницу
exit;
end
else Result := True; //Разрешаем переход на следующую страницу
end;
end;
end;
// --- Конец скрипта ------------------------------------------------------------
function InitializeSetup(): Boolean;
begin
Result := InitializeSetup1(); if not Result then exit;
end;
procedure DeinitializeSetup();
begin
DeinitializeSetup1();
end;
procedure InitializeWizard();
begin
//=================================================Начало папки=======================================
ExtractTemporaryFile('DirBitmap.bmp');
ExtractTemporaryFile('GroupBitmap.bmp');
WizardForm.SelectDirBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\DirBitmap.bmp'));
WizardForm.SelectDirBitmapImage.AutoSize:=true;
WizardForm.SelectGroupBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\GroupBitmap.bmp'));
WizardForm.SelectGroupBitmapImage.AutoSize:=true;
//===================================Конец папки=====================
/////////////////////////////////Шрифт в сетапе////////////////////////////
WizardForm.Font.Name:= 'Comic Sans MS';
/////////////////////////////////Конец шрифт в сетапе//////////////////////
/////////////////////////////////////Чёрный инсталятор///////////////////////////////////////////////////
#ifdef colour
begin
WizardForm.Font.Color:=clWhite;
WizardForm.Color:=Color;
WizardForm.WelcomePage.Color:=Color;
WizardForm.InnerPage.Color:=Color;
WizardForm.FinishedPage.Color:=Color;
WizardForm.LicensePage.Color:=Color;
WizardForm.PasswordPage.Color:=Color;
WizardForm.InfoBeforePage.Color:=Color;
WizardForm.UserInfoPage.Color:=Color;
WizardForm.SelectDirPage.Color:=Color;
WizardForm.SelectComponentsPage.Color:=Color;
WizardForm.SelectProgramGroupPage.Color:=Color;
WizardForm.SelectTasksPage.Color:=Color;
WizardForm.ReadyPage.Color:=Color;
WizardForm.PreparingPage.Color:=Color;
WizardForm.InstallingPage.Color:=Color;
WizardForm.InfoAfterPage.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.DiskSpaceLabel.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.GroupEdit.Color:=Color;
WizardForm.PasswordLabel.Color:=Color;
WizardForm.PasswordEdit.Color:=Color;
WizardForm.PasswordEditLabel.Color:=Color;
WizardForm.ReadyMemo.Color:=Color;
WizardForm.TypesCombo.Color:=Color;
WizardForm.WelcomeLabel1.Color:=Color;
WizardForm.WelcomeLabel1.Font.Color:=clWhite;
WizardForm.InfoBeforeClickLabel.Color:=Color;
WizardForm.MainPanel.Color:=Color;
WizardForm.PageNameLabel.Color:=Color;
WizardForm.PageDescriptionLabel.Color:=Color;
WizardForm.ReadyLabel.Color:=Color;
WizardForm.FinishedLabel.Color:=Color;
WizardForm.YesRadio.Color:=Color;
WizardForm.NoRadio.Color:=Color;
WizardForm.WelcomeLabel2.Color:=Color;
WizardForm.LicenseLabel1.Color:=Color;
WizardForm.InfoAfterClickLabel.Color:=Color;
WizardForm.ComponentsList.Color:=Color;
WizardForm.ComponentsDiskSpaceLabel.Color:=Color;
WizardForm.BeveledLabel.Color:=Color;
WizardForm.StatusLabel.Color:=Color;
WizardForm.FilenameLabel.Color:=Color;
WizardForm.SelectDirLabel.Color:=Color;
WizardForm.SelectStartMenuFolderLabel.Color:=Color;
WizardForm.SelectComponentsLabel.Color:=Color;
WizardForm.SelectTasksLabel.Color:=Color;
WizardForm.LicenseAcceptedRadio.Color:=Color;
WizardForm.LicenseNotAcceptedRadio.Color:=Color;
WizardForm.UserInfoNameLabel.Color:=Color;
WizardForm.UserInfoNameEdit.Color:=Color;
WizardForm.UserInfoOrgLabel.Color:=Color;
WizardForm.UserInfoOrgEdit.Color:=Color;
WizardForm.PreparingLabel.Color:=Color;
WizardForm.FinishedHeadingLabel.Color:=Color;
WizardForm.FinishedHeadingLabel.Font.Color:=clWhite;
WizardForm.UserInfoSerialLabel.Color:=Color;
WizardForm.UserInfoSerialEdit.Color:=Color;
WizardForm.TasksList.Color:=Color;
WizardForm.RunList.Color:=Color;
WizardForm.SelectDirBrowseLabel.Color:=Color;
WizardForm.SelectStartMenuFolderBrowseLabel.Color:=Color;
WizardForm.PageNameLabel.Font.Color:=clWhite;
end;
#endif
//////////////////////////////////////////////Конец чёрный инсталятор///////////////////////////////////////////////////////////////
InitializeWizard1();
InitializeWizard2();
end;
procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged1(CurPageID);
CurPageChanged2(CurPageID);
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := NextButtonClick1(CurPageID); if not Result then exit;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
CurStepChanged2(CurStep);
end;
Dimon585h
28-11-2013, 20:57
dima.dmitrienko.71@fb, dima.dmitrienko.71@fb, dima.dmitrienko.71@fb, судя по скриншоту, ты создаешь модпак для танков, ты не можешь мне помочь с моим вопросом?
Ты наверняка сделал чтобы всё устанавливалось в res_mods...
dima.dmitrienko.71@fb
28-11-2013, 21:30
dima.dmitrienko.71@fb, dima.dmitrienko.71@fb, dima.dmitrienko.71@fb, судя по скриншоту, ты создаешь модпак для танков, ты не можешь мне помочь с моим вопросом?
Ты наверняка сделал чтобы всё устанавливалось в res_mods... »
да ты прав всё устанавливется в папку resmods
Dimon585h
28-11-2013, 21:47
да ты прав всё устанавливется в папку resmods »
Покажи, расскажи или скинь скрипт, как это выглядит, как ты это сделал? Пожалуйста
dima.dmitrienko.71@fb
28-11-2013, 22:18
Цитата dima.dmitrienko.71@fb:
да ты прав всё устанавливется в папку resmods »
Покажи, расскажи или скинь скрипт, как это выглядит, как ты это сделал? Пожалуйста »
Давай както свяжемся напиши в пм свой скайп или вк что нибудь
Как сделать так чтобы когда наводишь на название какого-то файла выскакивала картинка? »Уже задавался вопрос, ответ был дан (http://forum.oszone.net/post-2239106-1324.html). Лень поискать (http://forum.oszone.net/post-2169372-662.html)?
А файл устанавливается и по пути сам создаёт папки heroes и magic »
Dimon585h, Справка рулит.
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
[Files]
Source: Папка_Игры_в_Инсталлятор\heroes\*; DestDir: {app}\heroes; Flags: ignoreversion recursesubdirs createallsubdirs
Source: Папка_Игры_в_Инсталлятор\magic\*; DestDir: {app}\magic; Flags: ignoreversion recursesubdirs createallsubdirs
habib2302
29-11-2013, 11:56
доброе время суток. как убрать размер компонентов?
http://i.imgur.com/Sl5qO3S.png (http://i.imgur.com/1y1B0Ss.png)
Optitron
29-11-2013, 12:06
habib2302, В .isl файле попробуй 2 значения очистить (находятся в "Select Components" wizard page)
ComponentSize1=%1 Кб
ComponentSize2=%1 Мб
ComponentSize1=
ComponentSize2=
В .isl файле попробуй 2 значения очистить (находятся в "Select Components" wizard page) »Чё?
habib2302, Не страдай геморроем, в скрипте создай секцию [Messages] и добавь в неё "ComponentSize1" и "ComponentSize2":
[Messages]
ComponentSize1=
ComponentSize2=
доброе время суток. как убрать размер компонентов? »
[Setup]
ShowComponentSizes=no
Raf-9600
29-11-2013, 14:07
Можно ли как-то отследить, ли воспроизводиться через Bass.dll что-либо?
Т.е. мне нужно сделать чтобы кнопка "Стоп" (прерывающая воспроизведение) была активной только если что-то воспроизводиться.
FX-DENIS
29-11-2013, 14:24
Ребята можете помочь,как прописать для ярлыка который создастся на рабочем столе параметр,то есть у ярлыка в строке объект написано так "D:\Games\Far Cry 3\bin\farcry3_d3d11.exe" -offline -language=russian,вот это надо чтобы было в ярлыке после exe -offline -language=russian ,в справке инно не нашел как сделать.
Name: {userdesktop}\Far Cry 3_DX11; Filename: {app}\bin\farcry3_d3d11.exe; Tasks: desktopicon; IconFilename: {app}\game.ico; WorkingDir: {app}\bin\; Languages:
Raf-9600
29-11-2013, 14:27
FX-DENIS, Name: {userdesktop}\Far Cry 3_DX11; Filename: {app}\bin\farcry3_d3d11.exe; Tasks: desktopicon; IconFilename: {app}\game.ico; WorkingDir: {app}\bin\; Parameters: "-offline -language=russian";
Raf-9600
29-11-2013, 16:22
Вроде бы нагуглил ответ на предыдущий вопрос, можно через Bass.dll узнавать длительность трека и передавать её в таймер, однако таймер пишет ошибку Match error.
Кто нибудь может подсказать, в чём ошибка?
function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd: LongWord; nIDEvent: LongWord): BOOL; external 'KillTimer@user32.dll stdcall';
procedure DisableStopSoundBtn(hwnd: HWND; uMsg: UINT; idEvent: UINT_PTR; dwTime: DWORD);
begin
KillTimer(WizardForm.Handle, idEvent);
StopSoundBtn.Enabled := False;
end;
function PlayRandDemoSound(const Sounds: array of String): boolean;
var
uSoundName, uSoundPath: String;
hSound: HWND;
ChLen: Integer;
ChCountSec: Integer;
begin
BASS_Stop();
BASS_Free();
uSoundName := Sounds[Random(GetArrayLength(Sounds))];
if not FileExists(AddBackslash(RemoveBackslash(ExpandConstant('{tmp}'))) + 'BASS.dll') then
ExtractTemporaryFile('BASS.dll');
uSoundPath := ExpandConstant(AddBackslash(RemoveBackslash(ExpandConstant('{tmp}'))) + uSoundName);
if not FileExists(uSoundPath)
then ExtractTemporaryFile(uSoundName);
try
BASS_Init(-1, 44100, 0, 0, 0);
hSound := BASS_StreamCreateFile(False, uSoundPath, 0, 0, 0, 0, 0);
ChLen := BASS_ChannelGetLength(hSound, 0);
ChCountSec := Round(BASS_ChannelBytes2Seconds(hSound, ChLen));
SetTimer(WizardForm.Handle, 777, 500, CallbackAddr('DisableStopSoundBtn'));
BASS_Start();
Result := BASS_ChannelPlay(hSound, False);
finally
ClearTempFolder('*.ogg');
end;
end;
dima.dmitrienko.71@fb
29-11-2013, 16:28
Цитата dima.dmitrienko.71@fb:
Как сделать так чтобы когда наводишь на название какого-то файла выскакивала картинка? »
Уже задавался вопрос, ответ был дан. Лень поискать? »
я пытаюсь вставить но у меня ошибка можете хотябы для одного элемента сделать а дальше я сам.
я пытаюсь вставить но у меня ошибка можете хотябы для одного элемента сделать а дальше я сам. »
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC