Войти

Показать полную графическую версию : Скрипты 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

El Sanchez
18-07-2017, 14:03
Проблема с картинками, я так понимаю, всего лишь из-за того, что картинки маленького разрешения (или нет?). Но что с кнопками Next и Cancel и текстом (мейби сам скин виноват?)? Это можно пофиксить? »
LagunaFAN, у своих TBitmapImage свойство Stretch в True, TLabel поменять на TNewStaticText, скин да, виноват, неверные метрики рассчитываются.

neorom
22-07-2017, 19:16
Ищу скрипт от dead-space-2-fenixx-ot-vasyakrn буду очень благодарен за помощь

pollipen
23-07-2017, 21:15
ребята помогите имеется несколько function InitializeSetup(): Boolean;
как это вынести

Iska
23-07-2017, 21:50
как это вынести »
Для начала привести сам код. Затем рассказать, как Вы дошли до жизни такой откуда этот код у Вас в таком виде взялся.

nik1967
23-07-2017, 22:24
pollipen, взять и объединить.

pollipen
24-07-2017, 08:41
всё парни разобрался

pollipen
24-07-2017, 09:34
парни как убрать вот такое сообщение
http://i94.fastpic.ru/big/2017/0724/9f/826012e09ede36aea122b82e36f45a9f.png
и дальше продолжала установку

Iska
24-07-2017, 10:23
Ну, допустим, уберёте сообщение, толку-то. Установка не продолжится, а завершится с ошибкой. Что Вы там такого обновляете?

Nordek
24-07-2017, 13:45
убрать вот такое сообщение
http://i94.fastpic.ru/big/2017/0724/9f/826012e09ede36aea122b82e36f45a9f.png
и дальше продолжала установку »
Зачем Вы взялись делать кривопак с таким условием? Ерунда у Вас получится.

Например имеется программа которую следует обновить.
При установке: Допустим пропустит, допустим установит - но файлы новой версии обновлены не будут или будут обновлены частично - после такой установки обновляемая программа перестанет работать или будет работать некорректно, с ошибками.

Пусть пользователь решает что ему делать (На снимке экране верный способ, инсталлятор сделает сам всё, что нужно.).

Если вам приспичило, то ловить нужно на инициализации, например:

[Files]
Source: ISTask.dll; DestDir: {app}; Flags: dontcopy

[Code]
function KillTask(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';

function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';

function InitializeSetup(): Boolean;
begin
If RunTask('myprog.exe', false) then
begin
if MsgBox('Программа {#SetupSetting("AppName")} используется. Закрыть и продолжить установку?', mbInformation, mb_YesNo) = idYes then
begin
KillTask('myprog.exe');
Result:= True;
end else
Exit;
end;
Result:=True;
end;

Nullkree
24-07-2017, 14:06
Ребята, подскажите, как разрешить ввод только цифр в Edit1 на кастомной странице? Страницу создал с помощью Inno Setup Form Designer. Пробовал так, не работает:

procedure CustomPage_Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in['0','1','2','3','4','5','6','7','8','9']) then Key:=#0;
end;

El Sanchez
28-07-2017, 08:48
как разрешить ввод только цифр в Edit1 на кастомной странице? »
Nullkree,

[Code]
#define A = (Defined UNICODE) ? "W" : "A"
const
GWL_STYLE = (-16);
ES_NUMBER = $00002000;

function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLong{#A}@user32.dll stdcall';
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall';

///////////////////////////
procedure InitializeWizard;
begin
SetWindowLong(WizardForm.DirEdit.Handle, GWL_STYLE, GetWindowLong(WizardForm.DirEdit.Handle, GWL_STYLE) or ES_NUMBER);
end;

eromunald
31-07-2017, 21:50
День добрый. Есть такой Inno Download Plugin (Mitrich Software). Для скачивания файла используются:

function isxdl_DownloadFiles(hWnd: Integer): Integer;
external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';

При скачивании появляется прогресс бар со статистикой по скачиваемому файлу. Может быть кто-нибудь сталкивался с подобной проблемой и знает как ее решить: необходимо скрыть прогресс бар процесса скачивания файла(-ов). Буду признателен за помощь!

procedure DownloadFiles(IDE, ISS: Boolean);
var
hWnd: Integer;
URL, FileName: String;
begin

isxdl_SetOption('label', 'Downloading extra files');
isxdl_SetOption('description', 'Please wait while Setup is downloading extra files to your computer.');

try
FileName := ExpandConstant('{tmp}\WizModernSmallImage-IS.bmp');
if not FileExists(FileName) then
ExtractTemporaryFile(ExtractFileName(FileName));
isxdl_SetOption('smallwizardimage', FileName);
except
end;
//turn off isxdl resume so it won't leave partially downloaded files behind
//resuming wouldn't help anyway since we're going to download to {tmp}
isxdl_SetOption('resume', 'false');

hWnd := StrToInt(ExpandConstant('{wizardhwnd}'));

Iska
31-07-2017, 22:40
необходимо скрыть прогресс бар процесса скачивания файла(-ов). »
Зачем?

eromunald
31-07-2017, 23:03
Зачем? »
В процессе инсталляции идет установка дополнительного по и владельцу по очень захотелось, чтобы после подтверждения скачивание и установка была невидима пользователю.

El Sanchez
01-08-2017, 08:59
При скачивании появляется прогресс бар со статистикой по скачиваемому файлу. Может быть кто-нибудь сталкивался с подобной проблемой и знает как ее решить: необходимо скрыть прогресс бар процесса скачивания файла(-ов). »
eromunald, idpShowDetails(False) или к форме и к ее элементам обращайтесь через переменную IDPForm (IDP Help - Types - TIdpForm). Все это после вызова idpDownloadAfter.

OldGamer
05-08-2017, 10:05
Здравствуйте!

Помогите, пожалуйста, решить проблемы:

1) В окне выбора языков, если нажать "Отмена" - ошибка (см. вложение) [решено]
2) Нужно, чтобы название языков установки было написано по англ./рус. (см. вложение), например Russian / Русский и т.д.
3) Как-нибудь к моему скрипту возможно "прикрутить" определение оставшегося времени до конца установки? [решено]

https://cloud.mail.ru/public/FD46/7renqfK7P

leonov_0fficial@vk
05-08-2017, 13:35
Здравствуйте, я впервые общаюсь с данной программой и при первой же компиляции мне выдаёт ошибку: "Line 51: Column: 76 Unknown Type 'TItemArea' ", - помогите пожалуйста. (Версия программы - 5.5.9(u)).

Сам код:
type
TComponentDesc = record
Description: String;
ImageName: String;
Index: Integer;
end;

var
CompDescs: array of TComponentDesc;
CompDescPanel, CompDescImgPanel: TPanel;
CompDescText: array[1..2] of TLabel;
CompIndex, LastIndex: Integer;
CompDescImg: TBitmapImage;

procedure ShowCompDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea);
var
i: Integer;
begin
if Index = LastIndex then Exit;
CompIndex := -1;
for i := 0 to GetArrayLength(CompDescs) -1 do
begin
if (CompDescs[i].Index = Index) then
begin
CompIndex := i;
Break;
end;
end;
if (CompIndex >= 0) and (Area = iaItem) then
begin
if not FileExists(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName) then
ExtractTemporaryFile(CompDescs[CompIndex].ImageName);
CompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName);
CompDescImg.Show;

CompDescText[2].Caption := CompDescs[CompIndex].Description;
CompDescText[2].Enabled := True;
end else
begin
CompDescText[2].Caption := CustomMessage('ComponentsInfo');
CompDescText[2].Enabled := False;
CompDescImg.Hide;
end;
LastIndex := Index;
end;

procedure CompListMouseLeave(Sender: TObject);
begin
CompDescImg.Hide;
CompDescText[2].Caption := CustomMessage('ComponentsInfo');
CompDescText[2].Enabled := False;
LastIndex := -1;
end;

procedure AddCompDescription(AIndex: Integer; ADescription: String; AImageName: String);
var
i: Integer;
begin
i := GetArrayLength(CompDescs);
SetArrayLength(CompDescs, i + 1);
CompDescs[i].Description := ADescription;
CompDescs[i].ImageName := AImageName;
CompDescs[i].Index := AIndex - 1
end;

procedure InitializeWizard();
begin
WizardForm.SelectComponentsLabel.Hide;
WizardForm.TypesCombo.Hide;
WizardForm.ComponentsList.SetBounds(ScaleX(0), ScaleY(0), ScaleX(184), ScaleY(205)); //растягиваем окно компоненты
WizardForm.ComponentsList.OnItemMouseMove:= @ShowCompDescription;
WizardForm.ComponentsList.OnMouseLeave := @CompListMouseLeave;

CompDescImgPanel := TPanel.Create(WizardForm);
with CompDescImgPanel do
begin
Parent := WizardForm.SelectComponentsPage;
SetBounds(ScaleX(192), ScaleY(0), ScaleX(225), ScaleY(120)); //растягиваем ширину и высотку превью
BevelInner := bvLowered;
end;

CompDescText[1] := TLabel.Create(WizardForm);
with CompDescText[1] do
begin
Parent := CompDescImgPanel;
SetBounds(ScaleX(5), ScaleY(5), CompDescImgPanel.Width - ScaleX(10), CompDescImgPanel.Height - ScaleY(10)); // описание компонентов относительно края превью
AutoSize := False;
WordWrap := True;
Enabled := False;
Caption := CustomMessage('ComponentsImgInfo');
end;

CompDescImg := TBitmapImage.Create(WizardForm);
with CompDescImg do
begin
Parent := CompDescImgPanel;
SetBounds(ScaleX(5), ScaleY(5), CompDescImgPanel.Width - ScaleX(10), CompDescImgPanel.Height - ScaleY(10));
Stretch := True;
Hide;
end;

CompDescPanel := TPanel.Create(WizardForm);
with CompDescPanel do
begin
Parent := WizardForm.SelectComponentsPage;
SetBounds(ScaleX(192), ScaleY(125), ScaleX(225), ScaleY(80));
BevelInner := bvLowered;
end;

CompDescText[2] := TLabel.Create(WizardForm);
with CompDescText[2] do
begin
Parent := CompDescPanel;
SetBounds(ScaleX(5), ScaleY(5), CompDescPanel.Width - ScaleX(10), CompDescPanel.Height - ScaleY(10));
AutoSize := False;
WordWrap := True;
Enabled := False;
Caption := CustomMessage('ComponentsInfo');
end;
AddCompDescription(1, CustomMessage ('Description1'), 'dust2.bmp');
AddCompDescription(2, CustomMessage ('Description2'), 'cache.bmp');
AddCompDescription(3, CustomMessage ('Description3'), 'inferno.bmp');
AddCompDescription(4, CustomMessage ('Description4'), 'mirage.bmp');
AddCompDescription(5, CustomMessage ('Description5'), 'cbble.bmp');
AddCompDescription(6, CustomMessage ('Description6'), 'overpass.bmp');
AddCompDescription(7, CustomMessage ('Description7'), 'italy.bmp');
AddCompDescription(8, CustomMessage ('Description8'), 'train.bmp');
AddCompDescription(9, CustomMessage ('Description9'), 'nuke.bmp');
end;

pollipen
08-08-2017, 17:15
парни подскажите как можно сделать что бы в папке при установки не проверялись файлы
Source: "C:\Users\Desktop\1\CommonFilesFolder\*"; DestDir: "{cf}"; Flags: что тут надо прописать

boss911
08-08-2017, 19:36
что бы в папке при установки не проверялись файлы »
Какую именно проверку нужно отключить, на что? Предположу, что вам нужен флаг overwritereadonly и/или ignoreversion.

eromunald
09-08-2017, 14:15
idpShowDetails(False) или к форме и к ее элементам обращайтесь через переменную IDPForm (IDP Help - Types - TIdpForm). Все это после вызова idpDownloadAfter. »
В принципе почти получилось, но во время скачивания файла ProgressBar не уходит и процесс скачивания файла еще виден, хотя были выставлены параметры idpShowDetails(False) и IDPForm.FileProgressBar.Visible := False Т.е. все скрыто кроме бара скачивания. Может есть другая возможность скрыть процесс скачивания файла или свернуть это окно.




© OSzone.net 2001-2012