Войти

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


Страниц : 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

Temyraz@fb
20-04-2012, 15:39
Run_A и Run_B соответственно?

Johny777
20-04-2012, 15:42
Temyraz@fb,
ну да если ты хочешь чтобы при отмеченном одном чекбоксе и ли другом распаковать те или иные файлы
Run_A или Run_B можешь по своему назвать для удобства, если хочешь. Только без пробелов

[Files]
Source: {src}\files\*; DestDir: {code:SrcDir}\files\; Flags: ignoreversion recursesubdirs createallsubdirs external; Check: Run_B
Source: {src}\license\*; DestDir: {code:SrcDir}\license\; Flags: ignoreversion recursesubdirs createallsubdirs external; Check: Run_A

PS:
Только для компонентов это не прокатит

Temyraz@fb
20-04-2012, 15:43
все понял, спасибо большое.

Ivan_009
20-04-2012, 17:04
Небольшой вопросик можно. Как изменить курсор при наведении на кнопку музыки, чтобы он был ввиде руки... :not-me:

Johny777
20-04-2012, 17:28
Ivan_009,
Модуль BASS_Module.iss открываешь, крутишь в самый низ, находишь этот блок и добавляешь строчки, которых у тебя нет »
там же дописываешь эту строчку

procedure BASS_CreateOnOffButton(Parent: TWinControl; Image: String; Left, Top, Width, Height, ShadowWidth: Integer);
begin
......
BtnSetCursor(BASS_OnOffBtn,GetSysCursorHandle(32649)); //установим стандартный курсор OCR_HAND=32649, константы OCR_... ищем в инете
end;

Источник:
...\Inno Setup 5\Modules\South\botva2_example\test19.iss

Ivan_009
20-04-2012, 17:31
Johny777 спасибо... :up

valyok666
20-04-2012, 18:13
Johny777 спасибо... »
Видишь всё берётся из справок,а не из воздуха)Мы без неё как без рук :happy: :happy:

nikitich95
21-04-2012, 16:32
Добрый день! у меня возник вопрос.
Как сделать картинку на всех страницах сетапа так чтобы она была на все окно?

Ivan_009
21-04-2012, 17:22
nikitich95 как-то так. Пример: :drug:

valyok666
21-04-2012, 18:30
nikitich95 как-то так. Пример:
Вложения
Тип файла: 7z Скрипт.7z
(2.1 Kb, 0 просмотров) »
проще использовать IsPicture

Ivan_009
21-04-2012, 20:04
valyok666 ну можно и так... :)

Johny777
22-04-2012, 00:00
Добрые люди скажите пожалуйста как добавить разделитель во сплывающее меню?
http://img28.imageshack.us/img28/9831/84968533.png (http://imageshack.us/photo/my-images/28/84968533.png/)
NewLine; не помогает
Они, разделители, не так уж важны в моём случае, но помогли бы немного упорядочить айтемы меню :)

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

El Sanchez,
прошу совета!
странное мигание скроллбокса (в частности картинок и ричэдитов) на второй странице и отсутствие анимации при использовании панели (код ниже), работающей через .Repaint; (она вызывается на странице компонентов из выпадающего меню SpeedButton)
наглядный пример - http://sendfile.su/577889
после добавления

const
GWL_EXSTYLE = (-20);
WS_EX_COMPOSITED = $2000000;

function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
function GetWindowLong(Wnd: HWnd; Index: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall';

procedure InitializeWizard;
begin
...
SetWindowLong(WizardForm.Handle, GWL_EXSTYLE, GetWindowLong(WizardForm.Handle, GWL_EXSTYLE) or WS_EX_COMPOSITED)
end;

*(добавил давно а косяки исправить так и не получается)
есть код для выкатывающейся панели через таймер, но с его использованием вылетают непонятные и жуткие ошибки

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[ Code]
var
SettingPanel: TPanel;
SettingPanel_m_Timer,SettingPanel_p_Timer: TTimer;

procedure NewButton1Click(Sender: TObject);
begin
SettingPanel_m_Timer.Enabled:=False; SettingPanel_p_Timer.Enabled:=False;

if SettingPanel.Top<0 then SettingPanel_p_Timer.Enabled:=True;
if SettingPanel.Top>-1 then SettingPanel_m_Timer.Enabled:=True;
end;

procedure PanelTop_p_Timer(Sender: TObject);
begin
SettingPanel.Top:=ScaleY(SettingPanel.Top + 5);
if SettingPanel.Top>-1 then
SettingPanel_p_Timer.Enabled:=False;
end;

procedure PanelTop_m_Timer(Sender: TObject);
begin
SettingPanel.Top:=ScaleY(SettingPanel.Top - 5);
if SettingPanel.Top<-314 then
SettingPanel_m_Timer.Enabled:=False;
end;

procedure InitializeWizard();
begin
SettingPanel_p_Timer := TTimer.Create(WizardForm);
with SettingPanel_p_Timer do
begin
Interval := 1;
Enabled:=False;
OnTimer := @PanelTop_p_Timer;
end;

SettingPanel_m_Timer := TTimer.Create(WizardForm);
with SettingPanel_m_Timer do
begin
Interval := 1;
Enabled:=False;
OnTimer := @PanelTop_m_Timer;
end;

SettingPanel := TPanel.Create(WizardForm);
with SettingPanel do
begin
Parent := WizardForm;
SetBounds(ScaleX(0),ScaleY(-315),ScaleX(497),ScaleY(313));
ParentBackground := False;
end;

with TNewButton.Create(WizardForm) do
begin
Parent := WizardForm;
SetBounds(ScaleX(40),ScaleY(327),ScaleX(75),ScaleY(25))
Caption := 'open';
OnClick := @NewButton1Click;
end;
end;

другой пример использвания таймера привел к тому что он (таймер) не работал (то была проверки на странице выбора директории установки)
речь идёт об этом незамысловатом примере:

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
SolidCompression=yes
Compression=lzma/ultra
PrivilegesRequired=none
OutputDir=userdocs:Inno Setup Examples Output


[ Code]
var
UTimer: TTimer; //Таймер для обновления событий

procedure UpdateTimer(Sender: TObject);
begin
//123 - ваш определённый текст!
if WizardForm.DirEdit.Text='123' then begin
WizardForm.NextButton.Enabled:= False;
end;
if WizardForm.DirEdit.Text='' then begin
WizardForm.NextButton.Enabled:= True;
end;
end;

procedure InitializeWizard;
begin
UTimer:= TTimer.Create(WizardForm);
UTimer.Interval:= 1;
UTimer.OnTimer:= @UpdateTimer;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
UTimer.Enabled:= False;
if CurPageID=wpSelectDir then begin
UTimer.Enabled:= True;
end;
end;

Дело в том что использую innocallback и возможно конфликт идёт с ним
ситуация такая
панель - часть оформления и отказаться от неё было бы не желательно
в данный момент использую эту

procedure Rolling(Sender: TObject);
var
i:integer;
begin
i:=Panel3.Left;
If i= -Panel3.Width then
begin
while True do
begin
if i>0 then i:=0;
Panel3.Left:= ScaleX(i);
/// Panel3.Repaint;
if i=0 then Break;
i:=i+10;
end;
MnuItem.Caption := ExpandConstant('{cm:Console0}');
end
else
begin
while True do
begin
if i<-Panel3.Width then i:=-Panel3.Width;
Panel3.Left:= ScaleX(i);
/// Panel3.Repaint;
if i=-Panel3.Width then Break;
i:=i-10;
end;
MnuItem.Caption := ExpandConstant('{cm:Console1}');
end;
end;

единственное что приходит в голову это
1. я неправильно использую WS_EX_COMPOSITED...
2. нужно вернуться на таймер-панель, но переделанную по innocallback

nikitich95
22-04-2012, 00:12
Спасибо. скрипт работает)) а как увеличить само окно установщика?

valyok666
22-04-2012, 03:09
nikitich95,
procedure InitializeWizard();
begin
WizardForm.ClientWidth:=ScaleX(790); ширина
WizardForm.ClientHeight:=ScaleY(533); высота
WizardForm.Center; установшик будет стоять по центру
end;

wertulll
22-04-2012, 20:20
Ребят подскажите пожалуйста как в этот скрипт прописать отображение своей папки ?

чтото не выходит нехрена :splat:

valyok666
22-04-2012, 23:09
EvilAlex, в исдоне полазей и поймёшь как=)

detiedyatosla
22-04-2012, 23:10
Привет народ)
Киньте плз скрипт добавления дополнительного по в сетап
Зарание благодарен

valyok666
22-04-2012, 23:19
detiedyatosla,
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: Redist; Description: Дополнительное Пограммное Обеспечение:;
Name: Redist\directx; Description: Обновить Microsoft DirectX; Flags: unchecked;
Name: Redist\vcredist_x86_2005SP1; Description: "Установить MS Visual c++ 2005 SP1"; Flags: unchecked;
Name: Redist\vcredist_x86_2008; Description: "Установить MS Visual c++ 2008"; Flags: unchecked;
Name: Redist\dotNetFx40_Full_x86_x64; Description: "Установить Net Framework 4.0"; Flags: unchecked;

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent
Filename: {src}\Redist\directx.exe; WorkingDir: {src}\Redist\; Parameters: /silent; Tasks: Redist\directx; Flags: waituntilterminated;
Filename: {src}\Redist\vcredist_x86_2005SP1.exe; WorkingDir: {src}\Redist\; Parameters: /silent; Tasks: Redist\vcredist_x86_2005SP1; Flags: waituntilterminated;
Filename: {src}\Redist\vcredist_x86_2008.exe; WorkingDir: {src}\Redist\; Parameters: /silent; Tasks: Redist\vcredist_x86_2008; Flags: waituntilterminated;
Filename: {src}\Redist\netframework.exe; WorkingDir: {src}\Redist\; Parameters: /silent; Tasks: Redist\dotNetFx40_Full_x86_x64; Flags: waituntilterminated;

Johny777
22-04-2012, 23:33
valyok666,
дополню :)
[Tasks]
Name: ADOBE_READER; Description: Установить Adobe Reader 1010; Flags: unchecked dontinheritcheck
Name: NVIDIA_PX; Description: Установить Nvidia PhysX; Flags: unchecked dontinheritcheck
Name: NO_STEAM; Description: Завершить процесс сервиса Steam; Flags: unchecked dontinheritcheck
Name: RESTART; Description: перезагрузить Матрицу; Flags: unchecked dontinheritcheck
[Run]
Filename: {src}\Redist\AdobeReader\AdbeRdr_RU.exe; Parameters: /sAll /rs; WorkingDir: {src}\Redist\AdobeReader; StatusMsg: Установка Adobe Reader; Tasks: ADOBE_READER; Flags: skipifdoesntexist waituntilterminated; Languages: Russian
Filename: {src}\Redist\AdobeReader\AdbeRdr_US.exe; Parameters: /sAll /rs; WorkingDir: {src}\Redist\AdobeReader; StatusMsg: Installing Adobe Reader; Tasks: ADOBE_READER; Flags: skipifdoesntexist waituntilterminated; Languages: English

Filename: {src}\Redist\PhysX.exe; Parameters: /quiet; WorkingDir: {src}\Redist; StatusMsg: Установка Nvidia PhysX; Tasks: NVIDIA_PX; Flags: skipifdoesntexist waituntilterminated;
Filename: taskkill; Parameters: /f /t /im steam.exe; Tasks: NO_STEAM; Flags: runhidden waituntilterminated;
Filename: shutdown.exe; Parameters: /r /t 10; Tasks: RESTART; Flags: runhidden waituntilterminated;

________________________________________
шрифты стаятся так http://forum.oszone.net/thread-92136.html (сам использую этот отличный метод)

valyok666
22-04-2012, 23:36
Johny777, Ну не знаю чекбоксы не поместятся :)




© OSzone.net 2001-2012