PDA

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


Страниц : 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 127 128 129 130 131 132 133 134 135 [136] 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

valyok666
15-08-2011, 20:39
как вам (http://uaimage.com/image/290d2d50 ) не показывает то что нужно
скрипт (http://rghost.ru/18074691)

insombia
15-08-2011, 20:41
vint56 а как ты сделал на начальной и финишной страничке что текст большой а то у меня он маленький некоторым людям сложно увидеть что там написано вот скрин твоего репака (http://uaimage.com/image/e9b2e795)

valyok666
15-08-2011, 20:57
insombia,
var
WelcomeLabel3: TLabel;

procedure InitializeWizard();
begin
WizardForm.Font.Color:= clRed; цвет
WizardForm.Font.Name:= 'Comic Sans MS'; шрифт
end;

El Sanchez
15-08-2011, 21:04
можешь положить Orca отдельно? »
R.i.m.s.k.y., версия (http://rghost.ru/18077751) поновее

vint56
15-08-2011, 21:57
insombia, вот тебе пример
#define MyAppName "Call of Duty Black Ops"
#define AppVerName "Call of Duty Black Ops v 1.0"
[Setup]
AppName={#MyAppName}
AppVerName={#AppVerName}
DefaultDirName={pf}\{#MyAppName}

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[CustomMessages]
rus.Welcome1=Вас приветствует %nМастер установки игры %n{#MyAppName}
rus.Welcome2=Программа установит игру %n{#AppVerName} на Ваш компьютер.%n%nРекомендуется закрыть антивирусные пакеты, %nа также все прочие приложения перед тем, %nкак продолжить.%n%n%nНажмите «Далее», чтобы продолжить, или %n«Отмена», чтобы выйти из программы установки.
rus.Finished1=Установка игры %n{#MyAppName} %nуспешно завершена.
rus.Finished2=Игра {#AppVerName} %nбыла успешно установлена на Ваш компьютер. %n%nДля ее запуска выберите соответствующий ярлык в меню «Пуск» или на Рабочем столе.
rus.Finished3=Нажмите «Завершить», чтобы выйти из программы установки.

[Code]
var
WelcomeLabel1,WelcomeLabel2,WelcomeLabel3,WelcomeLabel4,
FinishedHeadingLabel,FinishedHeadingLabel1,FinishedLabel,FinishedLabel1,FinishedLabel2,FinishedLabel 3: TLabel;

procedure InitializeWizard();
begin
WizardForm.WizardBitmapImage.Width:= ScaleX(497);
WizardForm.WizardBitmapImage2.Width:= ScaleX(497);
WelcomeLabel1:= TLabel.Create(WizardForm);
with WelcomeLabel1 do begin
AutoSize:=False;
SetBounds(ScaleX(-26), ScaleY(31), ScaleX(550), ScaleY(70));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:='Georgia';
Font.Size:= 14;
Font.Color:=$000000;
Font.Style:=[fsBold];
Caption:= ExpandConstant('{cm:Welcome1}');
Parent:=WizardForm.WelcomePage;
end;
WelcomeLabel2:= TLabel.Create(WizardForm);
with WelcomeLabel2 do begin
AutoSize:=False;
SetBounds(ScaleX(-27), ScaleY(30), ScaleX(550), ScaleY(70));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:='Georgia';
Font.Size:= 14;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold];
Caption:= ExpandConstant('{cm:Welcome1}');
Parent:=WizardForm.WelcomePage;
end;

WelcomeLabel3:=TLabel.Create(WizardForm);
with WelcomeLabel3 do begin
AutoSize:=False;
SetBounds(ScaleX(-26), ScaleY(121), ScaleX(550), ScaleY(200));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:='Georgia';
Font.Size:= 10;
Font.Color:=$000000;
Font.Style := [fsBold, fsItalic];
Caption:= ExpandConstant('{cm:Welcome2}');
Parent:=WizardForm.WelcomePage;
end;
WelcomeLabel4:=TLabel.Create(WizardForm);
with WelcomeLabel4 do begin
AutoSize:=False;
SetBounds(ScaleX(-27), ScaleY(120), ScaleX(550), ScaleY(200));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:='Georgia';
Font.Size:= 10;
Font.Color:=$FFFFFF;
Font.Style := [fsBold, fsItalic];
Caption:= ExpandConstant('{cm:Welcome2}');
Parent:=WizardForm.WelcomePage;
end;
FinishedHeadingLabel:= TLabel.Create(WizardForm);
with FinishedHeadingLabel do begin
SetBounds(ScaleX(-29), ScaleY(11), ScaleX(550), ScaleY(65));
AutoSize:= false;
Alignment := taCenter;
Transparent:= true;
WordWrap:= true;
Font.Name:='Georgia';
Font.Size:= 13;
Font.Color:=$00000;
Font.Style := [fsBold];
Caption:= ExpandConstant('{cm:Finished1}');
Parent:=WizardForm.FinishedPage;
end;
FinishedHeadingLabel1:= TLabel.Create(WizardForm);
with FinishedHeadingLabel1 do begin
SetBounds(ScaleX(-30), ScaleY(10), ScaleX(550), ScaleY(65));
AutoSize:= false;
Alignment := taCenter;
Transparent:= true;
WordWrap:= true;
Font.Name:='Georgia';
Font.Size:= 13;
Font.Color:=$FFFFFF;
Font.Style := [fsBold];
Caption:= ExpandConstant('{cm:Finished1}');
Parent:=WizardForm.FinishedPage;
end;

FinishedLabel:=TLabel.Create(WizardForm);
with FinishedLabel do begin
AutoSize:=False;
SetBounds(ScaleX(26), ScaleY(121), ScaleX(450), ScaleY(200));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:='Georgia';
Font.Size:= 10;
Font.Color:=$000000;
Font.Style := [fsBold, fsItalic];
Caption:= ExpandConstant('{cm:Finished2}');
Parent:=WizardForm.FinishedPage;
end;
FinishedLabel1:=TLabel.Create(WizardForm);
with FinishedLabel1 do begin
AutoSize:=False;
SetBounds(ScaleX(25), ScaleY(120), ScaleX(450), ScaleY(200));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:='Georgia';
Font.Size:= 10;
Font.Color:=$FFFFFF;
Font.Style := [fsBold, fsItalic];
Caption:= ExpandConstant('{cm:Finished2}');
Parent:=WizardForm.FinishedPage;
end;
FinishedLabel2:=TLabel.Create(WizardForm);
with FinishedLabel2 do begin
AutoSize:=False;
SetBounds(ScaleX(26), ScaleY(261), ScaleX(450), ScaleY(200));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:='Georgia';
Font.Size:= 10;
Font.Color:=$000000;
Font.Style := [fsBold, fsItalic];
Caption:= ExpandConstant('{cm:Finished3}');
Parent:=WizardForm.FinishedPage;
end;
FinishedLabel3:=TLabel.Create(WizardForm);
with FinishedLabel3 do begin
AutoSize:=False;
SetBounds(ScaleX(25), ScaleY(260), ScaleX(450), ScaleY(200));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:='Georgia';
Font.Size:= 10;
Font.Color:=$FFFFFF;
Font.Style := [fsBold, fsItalic];
Caption:= ExpandConstant('{cm:Finished3}');
Parent:=WizardForm.FinishedPage;
end;
end;

procedure HideComponents;
begin
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.FinishedHeadingLabel.Hide;
end;

Procedure CurPageChanged(CurPageID: Integer);
Begin
HideComponents;
end;

insombia
15-08-2011, 22:10
vint56

PageDescriptionLabel1,WelcomeLabel1,WelcomeLabel2,WelcomeLabel3,WelcomeLabel4,TotalNeedSpaceLabel,Ne edSpaceLabel,FreeSpaceLabel,
FinishedHeadingLabel,FinishedHeadingLabel1,FinishedLabel,FinishedLabel1,FinishedLabel2,FinishedLabel 3,StatusLabel,LogoLabel: TLabel;

здесь ошибки кидает

vint56
15-08-2011, 22:17
insombia, это не ошибки а дубликаты потому что они у тебя уже есть

insombia
15-08-2011, 22:50
valyok666 лучше на черный цвет поменять так как синий особенно когда темно глаза режет

Gugle
16-08-2011, 09:53
Доброго времени суток!

Народ, пните меня в описание методов (процедур/функций) для разных объектов, таких как: TNewCheckListBox, TNewProgressBar, TNewStaticText и т.д.

И вопрос: Как обойти элементы добавленные в TNewCheckListBox?
Смог только найти функцию, с помощью которой можно обратиться в элементу и узнать выделен он или нет (CheckListBox.Checked[1]:=True/False). Но этого мало, надо еще как то вытащить количество элементов и их описание. Для простоты примера выложил заготовку, если кому не лень подскажите.


[Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program

[CODE]

procedure InitializeWizard;
var
Page: TWizardPage;
CheckListBox: TNewCheckListBox;
RichEditViewer: TRichEditViewer;
i: Integer;
s: String;

begin
{ РАЗ }
Page := CreateCustomPage(wpWelcome, 'Тестовая панель', 'Тестовая панель номер РАЗ!.');

CheckListBox := TNewCheckListBox.Create(Page);
CheckListBox.Width := Page.SurfaceWidth;
CheckListBox.Height := ScaleY(100);
CheckListBox.Flat := True;
CheckListBox.Parent := Page.Surface;

for i := 0 to 15 do
CheckListBox.AddCheckBox('TNewCheckListBox_'+IntToStr(i), '', 0, True, True, False, True, nil);

{ ДВА }
Page := CreateCustomPage(Page.ID, 'Тестовая панель', 'Тестовая панель номер ДВА!');
RichEditViewer := TRichEditViewer.Create(Page);
RichEditViewer.Width := Page.SurfaceWidth;
RichEditViewer.Height := Page.SurfaceHeight;
RichEditViewer.Parent := Page.Surface;
RichEditViewer.ScrollBars := ssVertical;
RichEditViewer.UseRichEdit := True;

for i:=0 to CheckListBox.Count-1 do begin
s := s + '; ' + IntToStr(i) + '_' + CheckListBox.Checked[i] + '_' + CheckListBox.Item[i];
end;

RichEditViewer.RTFText := s;
RichEditViewer.ReadOnly := True;

end;

insombia
16-08-2011, 12:34
Как сделать такие проценты в инсталяторе? http://fastpic.ru/view/25/2011/0705/d7fafe33d4a36154bb642d5019ee029a.png.html

vint56
16-08-2011, 14:33
insombia, нужно использовать isdone

insombia
16-08-2011, 15:02
Кто может прикрутить такую верхнюю панель(Где типа закрыть-свернуть) http://uaimage.com/gallery/b5073689 в мой скрипт http://rghost.ru/18157871
вот скрипт с которого это хотелось бы прифигачить http://inno.at.ua/load/0-0-0-122-20

valyok666
16-08-2011, 16:23
insombia, там не панель там форма и стиль
isombia переписывай скрипт vinta лучший вариант

Gugle
16-08-2011, 17:01
Доброго времени суток!

Подскажите плз, есть ли возможность работать с *.xml файлами загружая их структуру, для изменения/добавления/удаления некоторых полей в нем?
Если стандартных средств нет, то может у кого нить наработки?

Нашел только следующие упоминания о работе с xml:
procedure RePlaceTextinFile(FilePath:string; find:string; replace:string);
var
S: TArrayOfString;
//str : string;
i : Integer;
begin
if not FileExists(FilePath) then begin MsgBox('Файл не найден', mbError, mb_Ok); Exit;end; // если файла нет, выходим
LoadStringsFromFile(FilePath, S); // загружаем файл
for i:= 0 to GetArrayLength(S)-1 do begin
if (Pos(AnsiUpperCase(find), AnsiUpperCase(S[i])) > 0) then begin
StringChangeEx(S[i], find, replace, True);
end;
end;
SaveStringsToFile(FilePath, S, False); // сохраняем файл
end;
///////////////////////////////////////////////////////////////////////////////
// Find given text in given file, and replace
// complete textline with given text.
// Created: March 27, 2002 by S.T.I.Bracke
// Revised: May 22, 2002 by S.T.I.Bracke
function ReplaceLine(strFilename, strFind, strNewLine: String): Boolean;
var
strTemp : String;
iLineCounter : Integer;
a_strTextfile : TArrayOfString;

begin
{ Load textfile into string array }
LoadStringsFromFile(strFilename, a_strTextfile);

{ Search trough all textlines for given text }
// old line
// for iLineCounter := 1 to High(a_strTextfile) do
// new line corrected by Nikolaus Moll
for iLineCounter := 0 to GetArrayLength(a_strTextfile)-1 do
begin
{ Overwrite textline when text searched for is part of it }
if (Pos(strFind, a_strTextfile[iLineCounter]) > 0) then
a_strTextfile[iLineCounter] := strNewLine;
end;

{ Save string array to textfile (overwrite, no append!) }
SaveStringsToFile(strFilename, a_strTextfile, False);

Result := True;

end;

Но это работа непосредственно с файлами, а не со структурой xml.

El Sanchez
16-08-2011, 18:29
Gugle, использовать объект Microsoft.XMLDOM. Методы (http://msdn.microsoft.com/en-us/library/ms757828(v=VS.85).aspx) и свойства (http://msdn.microsoft.com/en-us/library/ms763798(v=VS.85).aspx). Пример использования я когда-то давал.

R.i.m.s.k.y.
16-08-2011, 20:08
Подскажите плз, есть ли возможность работать с *.xml файлами загружая их структуру »
кто-то давал скрипты

insombia
16-08-2011, 21:44
кто-то может помочь вообщем при использовании маленького прогресс бара инсталятор такой

До http://uaimage.com/image/882763ba После http://uaimage.com/image/55730bb9

вот скрипт http://rghost.ru/18207171

No4noylis
16-08-2011, 22:39
insombia, так должно быть: http://rghost.ru/18214121 .

insombia
16-08-2011, 23:25
No4noylis блин так криво получилось но все-равно спс :)

Все сделал на руборде подказали кое что а размеры инсталятора в углу сам подобрал и все теперь нормально

avmaksimov
17-08-2011, 21:59
Стоит задача и не знаю как решить... Вкратце, есть своя dll, а в ней функция, ну доступ возвращает 0 и 1. 0 - все плохо и 1 все хорошо.

Функция запускается при ssPostInstall, т.е. после копирования всех остальных файлов... Так вот - как сделать так, чтобы в случае ошибки, делать откат изменений, такой же, как и при нажатии "Отмена" на более ранних этапах?

Самому делать бэкапы заменяемых файлов (если есть) и разархивировать в случае ошибки, как-то не то... Перелазил весь рунет и англонет, но ничего не нашел... Если кто знает, помогите, пожалуйста!




© OSzone.net 2001-2012