PDA

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


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

saurn
10-11-2014, 10:22
ROMKA-1977, Мои документы на деле и есть Documents
"Мои документы" просто обертка ссылки в проводнике на X:\Users\user_name\Documents

Shkutu
10-11-2014, 14:08
Всем доброго дня!
Есть такая проблемка. Если у инсталлятора выставлена директива AlwaysRestart=yes, то чекбоксы секции Run с флагом postinstall (запускающие приложения после работы инсталлятора) перестают выводиться. Пыталась приколхозить такую галку руками
procedure InitializeWizard;
begin
ConfCheckBox:=TNewCheckBox.Create(PageFromId(wpFinished));
ConfCheckBox.parent:= PageFromId(wpFinished).surface;
ConfCheckBox.top:=WizardForm.NoRadio.top + WizardForm.NoRadio.height + ScaleY(15);
ConfCheckBox.left:=WizardForm.NoRadio.left;
ConfCheckBox.caption:=ExpandConstant('{cm:runconf}');
ConfCheckBox.checked:=false;
WizardForm.NoRadio.onclick:=@RestartRadioOnClick; // чтобы галка дизейблилась,
WizardForm.YesRadio.onclick:=@RestartRadioOnClick; // если выбрана перезагрузка
WizardForm.NoRadio.checked:=true;
end;

//запускать пыталась так
procedure CurStepChanged(CurStep: TSetupStep);
var i:integer;
begin
case CurStep of
ssDone:
begin
if ConfCheckBox.checked then
Exec(ExpandConstant('{app}')+'\bin\Configurator.exe', '', '', SW_HIDE, ewNoWait, i);
end;
end;
end;


Но оно не работает. Подскажите плиз, есть ли какая настройка для галок postinstall в случае наличия директивы на промпт перезагрузки. Или если нет, то может как-то можно поправить мой код или еще как-то по-другому реализовать такую галку с запуском программы из кода?
UPD. Оказалось, все работает и проблема была в ошибке в имени файла :)

ROMKA-1977
10-11-2014, 14:51
Мои документы на деле и есть Documents
"Мои документы" просто обертка ссылки в проводнике на X:\Users\user_name\Documents »
Так и есть, но в некоторых играх некоректно работают сохранёнки если в локалке папка Documents отображается как Мои документы,
приходится в ручную переименовывать отображаемое имя папки.

saurn
10-11-2014, 15:31
Shkutu, до кучи
[Code]
var
runCheckBox: TCheckBox;


procedure RunListClick( Sender: TObject );
begin
case TRadioButton( Sender ).Caption of
SetupMessage( msgYesRadio ): runCheckBox.Checked := False;
SetupMessage( msgNoRadio ): runCheckBox.Checked := True;
end;
end;


procedure RunCheckBoxClick( Sender: TObject );
begin
if TCheckBox( Sender ).Checked then
WizardForm.ActiveControl := WizardForm.NoRadio;
end;


procedure InitializeWizard;
begin
with WizardForm.RunList do
Height := ItemRect( ItemIndex ).Bottom;

WizardForm.YesRadio.OnClick := @RunListClick;
WizardForm.NoRadio.OnClick := @RunListClick;

runCheckBox := TCheckBox.Create( nil );
with runCheckBox do
begin
Parent := WizardForm.FinishedPage;
Left := WizardForm.RunList.Left;
Top := WizardForm.RunList.Top + WizardForm.RunList.Height + ScaleY( 10 );
Width := WizardForm.RunList.Width;
Caption := 'Запустить чето там';
OnClick := @RunCheckBoxClick;
end;
end;


procedure CurStepChanged( CurStep: TSetupStep );
var
eRR: Integer;
begin
case CurStep of
ssDone: if runCheckBox.checked then
Exec( ExpandConstant( '{sys}\calc.exe' ), '', '', SW_SHOW, ewNoWait, eRR );
end;
end;

Tixo
10-11-2014, 20:02
помогите прикрутить кликабельное лого в углы, код сам я нашел, но вот прикрутить не получается( инсталл запускается, он не более, кликабельного лого я не обнаруживаю
http://rghost.ru/58995455

Dodakaedr
10-11-2014, 21:39
помогите прикрутить кликабельное лого в углы, »
Было бы не плохо приложить все необходимые файлы для работы вашего скрипта.

diman_21Ru
10-11-2014, 21:44
Какой самый простой способ добавление всплывчатой картинки и с затуханием

Dodakaedr
10-11-2014, 21:46
Какой самый простой способ добавление всплывчатой картинки и с затуханием »
Добавление куда? Типа сплэша?

diman_21Ru
10-11-2014, 21:59
Dodakaedr, да

Dodakaedr
10-11-2014, 22:20
Типа сплэша? »

помогите прикрутить кликабельное лого »
Попробуйте так: [Setup]
AppName=My program
VersionInfoVersion=5.0
AppVerName=My program
DefaultDirName={pf}\My program
DefaultGroupName=My program
OutputDir=.

[Files]
Source: {win}\help\*; DestDir: {app}\Files; Flags: external recursesubdirs createallsubdirs;

[code]
var
Label1: TLabel;

procedure btnOnClick(Sender: TObject);
var
rcode: integer;
begin
ShellExec('open','http://forum.oszone.net/thread-278998-193.html','', '', SW_SHOW, ewNoWait, rCode);
end;

procedure btnOnClick2(Sender: TObject);
begin
Label1.Font.Color := clred;
end;

procedure btnOnClick3(Sender: TObject);
begin
Label1.Font.Color := clBlue;
end;

procedure InitializeWizard();
begin
Label1 := TLabel.Create(WizardForm);
with Label1 do
begin
Parent := WizardForm;
Cursor := crHand;
Caption := 'OSZONE.NET';
Font.Color := clBlue;
Font.Height := -16;
Font.Name := 'Tahoma';
Font.Style := [fsUnderline];
ParentFont := False;
Transparent := True;
OnClick := @btnOnClick;
OnMouseEnter := @btnOnClick2;
OnMouseLeave := @btnOnClick3;
Left := ScaleX(8);
Top := ScaleY(327);
Width := ScaleX(153);
Height := ScaleY(19);
end;
end;



#define Bitmap "Logo.bmp"

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.

[Files]
Source: {#Bitmap}; Flags: dontcopy solidbreak

[Code]
var
Panel1: TPanel;
BitmapImage1: TBitmapImage;

procedure Panel1Click(Sender: TObject);
var
EC: integer;
begin
ShellExec('open', 'http://forum.oszone.net/', '', '', SW_SHOWNORMAL, ewNoWait, EC);
end;

procedure InitializeWizard();
begin
Panel1 := TPanel.Create(WizardForm);
with Panel1 do
begin
Parent := WizardForm;
Left := ScaleX(16);
Top := ScaleY(318);
Width := ScaleX(185);
Height := ScaleY(41);
end;

BitmapImage1 := TBitmapImage.Create(WizardForm);
with BitmapImage1 do
begin
Parent := Panel1;
Left := ScaleX(4);
Top := ScaleY(4);
Width := ScaleX(178);
Height := ScaleY(34);
Cursor := crHand;
OnClick := @Panel1Click;
ExtractTemporaryFile('{#Bitmap}');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\{#Bitmap}'));
end;
end;
положите рядом с скриптом файлик Logo.bmp (178х34)

Tixo
11-11-2014, 20:14
Dodakaedr, http://rghost.ru/private/59013615/5adde354254526846226a5374644cac3 - чтот не вышло у меня, ругается на переменную EC

saurn
11-11-2014, 20:21
Tixo, объявите переменную:
var
EC: Integer;
P.S.
Заливайте файлы в *.zip или *.rar, на худой конец в *.7z - это ускорит решение вашего вопроса. Не у всех установлен FreeArc, и не каждый станет его устанавливать.

Dodakaedr
11-11-2014, 20:25
чтот не вышло у меня, ругается на переменную EC »
Поправил уже. #1930 (http://forum.oszone.net/post-2427606-1930.html)

Tixo
11-11-2014, 20:38
хмм, все компилится, а лого не кликается( никуда не переходит

Dodakaedr
11-11-2014, 20:59
Tixo, Странно. У меня все работает. Тестил на Inno Ultra Unicode.

Tixo
11-11-2014, 21:06
скинь свою версию моего инсталла) у меня отказывается работать(

TryRooM
12-11-2014, 10:08
Tixo,
Держите.
Скрипт с лого

Dodakaedr
12-11-2014, 10:18
TryRooM, спасибо!
Tixo, + исправлен сплэш

VoLT
12-11-2014, 10:36
Друзья!!! Спешу поделится своими наработками. For science ... :Beer:
И так этот замечательный код (написанный на Delphi) позволяет вам вызвать ЛЮБУЮ функцию из вашего скрипта!
Подходит только для Inno Setup Compiler 5.5.5 (u) (build 121002)

PS Если вы попробовали использовать это в своих проектах, напишите о результатах - мне будет интересно узнать много нового о применениях

Tixo
12-11-2014, 11:27
Спасибо, только вот что странно, Dodakaedr, с твоим кодом запускается только черная рамка на месте лого, с запуском TryRooM все нормально)




© OSzone.net 2001-2012