PDA

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


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

Shkutu
20-12-2013, 17:36
Tco 03, да, это похоже на то, что мне нужно.
Буду пробовать, спасибо:)

dima.dmitrienko.71@fb
21-12-2013, 17:36
Всем привет вы бы не могли подсказать вот этот скрип можо сделать чтобы не только картинка вылезала а и описание??
Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program
Compression=none
AppId=TheBestAppId
DisableWelcomePage=yes
DisableFinishedPage=yes
DisableDirPage=yes
DisableReadyPage=yes


[Components]
Name: hl2; Description: Half-Life 2; Flags: disablenouninstallwarning
Name: hl2\ru; Description: Russian; Flags: disablenouninstallwarning exclusive
Name: hl2\en; Description: English; Flags: disablenouninstallwarning exclusive

Name: ep1; Description: Half-Life 2 Episode One; Flags: disablenouninstallwarning
Name: ep1\ru; Description: Russian; Flags: disablenouninstallwarning exclusive
Name: ep1\en; Description: English; Flags: disablenouninstallwarning exclusive

Name: ep2; Description: Half-Life 2 Episode Two; Flags: disablenouninstallwarning
Name: ep2\ru; Description: Russian; Flags: disablenouninstallwarning exclusive
Name: ep2\en; Description: English; Flags: disablenouninstallwarning exclusive

Name: portal; Description: Portal; Flags: disablenouninstallwarning
Name: portal\ru; Description: Russian; Flags: disablenouninstallwarning exclusive
Name: portal\en; Description: English; Flags: disablenouninstallwarning exclusive


[Files]
Source: Wasteland_Scanner_con.bmp; Flags: dontcopy nocompression
Source: Strider_early2.bmp; Flags: dontcopy nocompression
Source: Cremator_poster.bmp; Flags: dontcopy nocompression
Source: Portal.bmp; Flags: dontcopy nocompression


[code ]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

const
UNDEF_INDEX = -777;
ALPHA_BLEND_LEVEL = 128; // max=Byte=255

WS_EX_LAYERED = $80000;
WS_EX_TRANSPARENT = $20;
LWA_COLORKEY = 1;
LWA_ALPHA = 2;
GWL_EXSTYLE = (-20);


var
InfoPic: TBitmapImage;
LastIndex: Integer;
TempPath: String;
PicForm: TForm;


type
COLORREF = DWORD;


function GetCursorPos(var lpPoint: TPoint): BOOL; external 'GetCursorPos@user32.dll stdcall';
function SetLayeredWindowAttributes(Hwnd: THandle; crKey: COLORREF; bAlpha: Byte; dwFlags: DWORD): Boolean; external 'SetLayeredWindowAttributes@user32.dll stdcall';
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';
function SetFocus(hWnd: HWND): HWND; external 'SetFocus@user32.dll stdcall';


procedure ShowPicHint(const PicFilePath: String);
var
pt: TPoint;
begin
if not GetCursorPos(pt) then Exit;
InfoPic.Bitmap.LoadFromFile(PicFilePath);
try
with PicForm do
begin
SetBounds(ScaleX(pt.x + 16), ScaleY(pt.y + 7), InfoPic.Width, InfoPic.Height);
Show;
end;
finally
SetFocus(WizardForm.Handle);
end;
end;


procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
var
UndefPic: String;
begin
if Index = -1 then Exit;
if Index = LastIndex then Exit;
try
case TNewCheckListBox(Sender).ItemCaption[Index] of
'Half-Life 2': UndefPic := 'Wasteland_Scanner_con.bmp';
'Half-Life 2 Episode One': UndefPic := 'Strider_early2.bmp';
'Half-Life 2 Episode Two': UndefPic := 'Cremator_poster.bmp';
'Portal': UndefPic := 'Portal.bmp';
else
begin
LastIndex := UNDEF_INDEX;
PicForm.Hide;
Exit;
end;
end;
if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic);
ShowPicHint(TempPath + UndefPic);
finally
LastIndex := Index;
end;
end;


procedure CompOnMouseLeave(Sender: TObject);
begin
PicForm.Hide;
LastIndex := -1;
end;


procedure InitInfo();
begin
WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove;
WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave;
TempPath := AddBackslash(ExpandConstant('{tmp}'));
LastIndex := UNDEF_INDEX;
PicForm := TForm.Create(WizardForm)
with PicForm do
begin
BorderStyle := bsNone;
FormStyle := fsStayOnTop;
InfoPic := TBitmapImage.Create(PicForm)
with InfoPic do
begin
Parent := PicForm;
AutoSize := True;
end;
end;
SetWindowLong(PicForm.Handle, GWL_EXSTYLE, GetWindowLong(PicForm.Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(PicForm.Handle, 0, ALPHA_BLEND_LEVEL, LWA_ALPHA);
end;


procedure InitializeWizard();
begin
InitInfo();
end;

Mat_y
21-12-2013, 23:08
ошибка runtime error (at 145:123) could not call proc
Кто знает чем лечить? у 1 человека только такое было.. остальные нормально запускают

Shkutu
22-12-2013, 03:13
Mat_y, у меня такое обычно бывает, если какой-то косяк с библиотекой. Но может возникать и из-за чего-то еще. Так что нужно больше информации:) В какой момент ошибка возникает? На какую сточку кода ругается?

Tco 03
22-12-2013, 09:51
На какую сточку кода ругается? »
:spy: Ошибка уже всё сама за себя сказала: (at 145:123) - строка 145 - символ 123

Mat_y
22-12-2013, 17:49
Так что нужно больше информации В какой момент ошибка возникает? На какую сточку кода ругается? »
Из 300 тысяч запускавших только у одного такая фигня. При компиляции проблем нет.
Ошибка уже всё сама за себя сказала: (at 145:123) - строка 145 - символ 123 »
спасибо. откуда считать начинать? просто так вообще попадаю на секцию Components.. а в коде еще полно выносок типа #include

Nordek
22-12-2013, 20:31
откуда считать начинать? »

http://i5.imageban.ru/thumbs/2013.12.22/05f0fcc8a3b6010708fbc80bd75a4629.png (http://i5.imageban.ru/out/2013/12/22/05f0fcc8a3b6010708fbc80bd75a4629.png)

Dimon585h
22-12-2013, 21:32
Ребят, помогите пожалуйста, кто знает Pascal, как сделать движение шарика под углом.
В обычном паскале, чтобы надо было задавать ещё после запуска программы угол и начальную скорость шарика, и чтобы рисовалась траектория, надеюсь вы меня поняли, помогите пожалуйста.

Mat_y
23-12-2013, 09:28
Так тоже не понятно? »
Нет, не понятно... в таком случае мы попадаем на пустое место. Вообще вся 145 строка попадает на секцию COMPONENTS... где нечему ломаться... а 123 символ уходит далеко за пределы написанного... ошибка возникает уже на скомпилированном скрипте... я предпологаю, что в этом случае правильно начинать считать с секции CODE... и если считать оттуда, то как учитывать внешние секции CODE,которые вынесены в отдельный фаил через #include

Nordek
23-12-2013, 09:45
то как учитывать внешние секции CODE »Пересобрать без модулей и дать тому человеку протестировать, для того чтоб узнать на каком месте в этот раз выпадет ошибка (at XXX:XXX). Полагаю после сборки, она может быть вызвана уже в другом месте. Да к тому же на сколько помню, у тебя в скрипте много дублей.

которые вынесены в отдельный фаил через #include »От того всегда не любил модульную структуру скрипта и стараюсь собирать полный скрипт.

Shkutu
23-12-2013, 12:22
Tco 03, прям просто КО. Извините:)
Но вообще говоря, когда я спрашивала про строчку, я имела ввиду именно строку, а не номер. Может где-то в истории это было раньше, а я пропустила, но тем не менее, сам скрипт я не видела.
Mat_y, а нельзя запустить это из отладчика? В этом случае оно стопорнется на строке с ошибкой и даже цветом эту строку выделит. Ну или если нельзя (я так понимаю, что ошибка не у тебя), то да, можно попробовать пересобрать без модулей и посмотреть.

Nordek
23-12-2013, 12:28
я так понимаю, что ошибка не у тебя »
Shkutu, В том то и дело что не у него Из 300 тысяч запускавших только у одного такая фигня. При компиляции проблем нет. »

то да, можно попробовать пересобрать без модулей и посмотреть. »По хорошему там весь скрипт переписывать нужно.

diman_21Ru
24-12-2013, 15:00
Парни на 5.5.4 не работает

tuz-veta
24-12-2013, 21:02
можете помочь?
Какой функцией удалить все содержимое папки, в которую будет устанавливаться программа?

Nordek
24-12-2013, 22:19
Парни на 5.5.4 не работает »Что значит не работает?
Если ты про расширенную версию говоришь, то её ещё не существует.
Есть только 5.5.1 (http://forum.oszone.net/post-2267176-1603.html)


Какой функцией удалить все содержимое папки »
Удалить перед установкой:
[InstallDelete]
Name: {app}; Type: filesandordirs

diman_21Ru
25-12-2013, 10:38
Парни что за ошибка procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea); неизвестный тип

habib2302
26-12-2013, 21:11
Доброе время суток.Возможно ли указать 2 компонент в командную строку для тихой установки?

Optitron
26-12-2013, 21:13
habib2302, вроде как /Components="название 2 компонента"

habib2302
26-12-2013, 21:19
/Components="название 2 компонента" »
я имел виду
/Components=Portable /Components=Ru

Nordek
27-12-2013, 03:24
habib2302, Посмотри справку: "Прочая информация » Параметры командной строки инсталлятора".
/COMPONENTS="comma separated list of component names"
Меняет выбранные по умолчанию компоненты. В этом случае параметр командной строки указывает инсталлятору менять тип установки на Выборочный. If no custom type is defined, this parameter is ignored.

Only the specified components will be selected; the rest will be deselected.

If a component name is prefixed with a "*" character, any child components will be selected as well (except for those that include the dontinheritcheck flag). If a component name is prefixed with a "!" character, the component will be deselected.

This parameter does not change the state of components that include the fixed flag.

Например:
Deselect all components, then select the "help" and "plugins" components:
/COMPONENTS="help,plugins"

Например:
Deselect all components, then select a parent component and all of its children with the exception of one:
/COMPONENTS="*parent,!parent\child"
А вообще, /SAVEINF="filename" и /LOADINF="filename" рулят ;).




© OSzone.net 2001-2012