Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
nik1967, ты не знаешь как мне исправить вот это »
Знаю var
PageNameLabel,PageDescriptionLabel: TLabel;
//***************************************** [ начало 497 58 изображения ] *********************************************//
PageNameLabel:= TLabel.Create(WizardForm);
with PageNameLabel do begin
Left:= WizardForm.PageNameLabel.Left;
Top:= WizardForm.PageNameLabel.Top;
Width:= WizardForm.PageNameLabel.Width;
Height:= WizardForm.PageNameLabel.Height;
AutoSize:= False;
WordWrap:= True;
Font.Name:= WizardForm.PageNameLabel.Font.Name;
Font.Style:= [fsBold];
Transparent:= True;
Parent:= WizardForm.MainPanel;
end;
PageDescriptionLabel:= TLabel.Create(WizardForm);
with PageDescriptionLabel do begin
Left:= WizardForm.PageDescriptionLabel.Left-12;
Top:= WizardForm.PageDescriptionLabel.Top;
Height:= WizardForm.PageDescriptionLabel.Height;
Width:= ScaleX(260);
AutoSize:= False;
WordWrap:= True;
Font.Name:= WizardForm.PageDescriptionLabel.Font.Name;
Transparent:= True;
Parent:= WizardForm.MainPanel;
end;
with WizardForm do begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
with MainPanel do begin
with WizardSmallBitmapImage do begin
Left:= ScaleX(0);
Top:= ScaleY(0);
Width:= Mainpanel.Width;
Height:= MainPanel.Height;
end;
end;
end;
//****************************************** [конец 497 58 изображения ] **********************************************//
Procedure CurPageChanged(CurPageID: Integer);
Begin
PageNameLabel.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption:= WizardForm.PageDescriptionLabel.Caption;
end;
insombia
27-07-2011, 16:09
nik1967 а на мой вопрос ответ знаешь?
nik1967, я че-то в свой скрипт вставить не могу.Не поможешь?
Gnom_aka_Lexander
27-07-2011, 16:31
А как сделать чтобы не писалось распаковывается там какой то файл а просто распаковка файлов а какие именно чтобы не указывалось? »
Можно так:
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.FilenameLabel.Caption := WizardForm.StatusLabel.Caption;
end;
insombia
27-07-2011, 16:31
подскажите как сделать если есть 2 одинаковых кода CurPageChanged (CurPageID: Integer);
как сделать чтобы можно было с ним как и с procedure InitializeWizard(); делать типа
procedure InitializeWizard();
begin
InitializeWizard1(); а то уже давно этим занимался
А как через Inno Setup AutoRun делать?
insombia
27-07-2011, 16:34
LinkOFF Need for Speed™ Undercover.iss v 2.2 скачай там есть пример
Gnom_aka_Lexander
27-07-2011, 16:36
подскажите как сделать если есть 2 одинаковых кода CurPageChanged (CurPageID: Integer); »
CurPageChanged (CurPageID: Integer);
begin
CurPageChanged1 (CurPageID);
CurPageChanged2 (CurPageID);
end; Но лучше сразу в общей процедуре писать, в плане производительности и исключения ошибок. При объединении процедур, почти неизбежна ситуация, когда одни и те-же условия обрабатываются по нескульку раз, что приводит к тормозам. А если эти условия используют одинаковые глобальные переменные, то ошибки просто неизбежны.
insombia
27-07-2011, 16:44
как сделать чтобы лого было тоже прозрачный а не таким http://images.bcm.net.ua/images/34556850958331245628.jpg использую iswin7
valyok666
27-07-2011, 17:48
доброго времени суток=)кто подскажет код на создание такого лого скриншот (http://s51.radikal.ru/i131/1107/31/5c2dec9660b7.jpg)
No4noylis
27-07-2011, 18:28
insombia, вот что нашел http://rghost.ru/8029941
insombia
27-07-2011, 20:08
valyok666 через inno setup gamescript generator по моему
valyok666, лого картинка (http://forum.ru-board.com/topic.cgi?forum=5&topic=35146&start=1299&limit=1&m=3#1) и текстовое лого
procedure InitializeWizard();
var
txt: tlabel;
begin
txt:=TLabel.Create(WizardForm)
txt.Left:=10;
txt.Top:=330;
txt.Font.Color:=clgray;
txt.Caption:='Forum OSZone';
txt.Font.Style:= [fsBold];
txt.Font.Name= 'georgia';
txt.Parent:=WizardForm;
end;
valyok666
27-07-2011, 21:29
txt.Font.Name= 'georgia';
на эту строчку ругается
txt.Font.Name= 'georgia';
на эту строчку ругается »
это шрифт, поставь например Times New Roman
No4noylis
27-07-2011, 22:30
txt.Font.Name= 'georgia'; »
Ошибочка,
Вот как нужно, а от имени шрифта не зависит:
txt.Font.Name:= 'georgia';
Народ!!!! У кого есть кнопочки (желательно .Png), MusucButton.Png, чекбоксы, панели ну еще какие другие картиночки, можете скинуть???? Плиз :)
insombia
27-07-2011, 23:10
No4noylis в Need for Speed™ Undercover.iss v 2.2 есть кажись
У кого то есть Inno Setup Form Designer а то здесь ссылка битая
Мне помогли добавить к скрипту распаковки OGG еще и распаковку WV.
[Code]
function StringToArray(Text, Cut: String): array of String;
var i, k: Integer;
begin
SetArrayLength(Result, 0);
if Cut = '' then Cut:= #1310; //если шаблон пуст, считаем переводы строк
Repeat k:=Pos(Cut,Text);
if k = 1 then begin Delete(Text, 1, Length(Cut)); CONTINUE
end;
SetArrayLength(Result, GetArrayLength(Result) +1);
i:=GetArrayLength(Result)-1;
if k = 0 then
Result[i]:=Text
else begin
Result[i]:= Copy(Text, 1, k -1);
Delete(Text, 1, Length(Result[i]) + Length(Cut));
end;
Until Length(Text) * k = 0;
end;
procedure FindFiles(FromDir: String; Mask: String);
var FindResult: Boolean;
FSR, DSR: TFindRec;
S: String;
begin
FindResult:=FindFirst(AddBackslash(FromDir)+Mask, FSR);
while FindResult do begin
if FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then begin
S:= S + AddBackslash(fromDir) + FSR.Name +'|';
end;
FindResult:= FindNext(FSR);
end;
FindResult:= FindFirst(AddBackslash(FromDir)+ '*.*', DSR);
while FindResult do begin
if ((DSR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) and not ((DSR.Name = '.') or (DSR.Name = '..')) then begin
FindFiles(AddBackSlash(FromDir)+ DSR.Name, Mask);
end;
FindResult:= FindNext(DSR);
end;
FindClose(FSR);
FindClose(DSR);
end;
//-------Начало----распаковка OGG------------------------------------------------
procedure RecodeOgg;
var Files: Array of String;
CurFile, S: String;
ResultCode, n: integer;
begin
FindFiles(ExpandConstant('{app}\hl2\sound\'), '*.ogg'); //Находим все файлы по маске, в выбранной папке
Files:= StringToArray(S, '|'); //Переводим в массив
WizardForm.ProgressGauge.Max:= GetArrayLength(Files)-1; //Получаем кол-во файлов
for n:=(GetArrayLength(Files)-1) downto 0 do begin
CurFile:= Files[n];
StringChange(CurFile, AddBackslash(ExpandConstant('{app}\hl2\sound\')), '');
Exec(ExpandConstant('{app}\hl2\sound\oggdec.exe'), '-Q '+ AddQuotes(CurFile), '', SW_Hide, EwWaitUntilTerminated, ResultCode); //Для каждого файла запускаем декодер
DeleteFile(Files[n]); //Удаляем ненужный файл
WizardForm.FilenameLabel.Caption:= Files[n]; //Двигаем прогрессбар
WizardForm.ProgressGauge.Position:= WizardForm.ProgressGauge.Position +1;
end;
DeleteFile(ExpandConstant('{app}\hl2\sound\oggdec.exe'));
end;
//-------Конец----распаковка OGG------------------------------------------------
//-------Начало----распаковка WV ------------------------------------------------
procedure RecodeWV;
var Files: Array of String;
CurFile, S: String;
ResultCode, n: integer;
begin
FindFiles(ExpandConstant('{app}\hl2\sound\'), '*.wv'); //Находим все файлы по маске, в выбранной папке
Files:= StringToArray(S, '|'); //Переводим в массив
WizardForm.ProgressGauge.Max:= GetArrayLength(Files)-1; //Получаем кол-во файлов
for n:=(GetArrayLength(Files)-1) downto 0 do begin
CurFile:= Files[n];
StringChange(CurFile, AddBackslash(ExpandConstant('{app}\hl2\sound\')), '');
Exec(ExpandConstant('{app}\hl2\sound\wvunpack.exe'), '-t -q -y '+ AddQuotes(CurFile), '', SW_Hide, EwWaitUntilTerminated, ResultCode); //Для каждого файла запускаем декодер
DeleteFile(Files[n]); //Удаляем ненужный файл
WizardForm.FilenameLabel.Caption:= Files[n]; //Двигаем прогрессбар
WizardForm.ProgressGauge.Position:= WizardForm.ProgressGauge.Position +1;
end;
DeleteFile(ExpandConstant('{app}\hl2\sound\wvunpack.exe'))
end;
//-------Конец----распаковка WV ------------------------------------------------
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
WizardForm.ProgressGauge.Position := 0;
WizardForm.StatusLabel.Caption := 'Decompressing audio files, please wait...';
RecodeOgg;
RecodeWV;
end;
end;
Компиляция проходит успешно, но не отрабатывает ни распаковку OGG ни WV. после распаковки файлов идет завершение установки . Успел заметить, после распаковки файлов, пишет: сохранение списка, Decompressing audio.. (в скрипте для OGG после этого шла распаковка файлов OGG).
[Setup]
AppName=RecodeOgg
AppVerName=RecodeOgg
OutputDir=.
OutputBaseFilename=RecodeOgg
DefaultDirName={pf}\RecodeOgg
AppendDefaultDirName=False
DisableDirPage=True
[files]
Source: oggdec.exe; DestDir: {app};
Source: oggs\*; DestDir: {app};
Source: oggs\*; DestDir: {app}\Data;
[code]
var
Files: Array of String;
S: String;
n: Integer;
Function StringToArray(Text, Cut: String): array of String; var i, k: Integer;
Begin
SetArrayLength(Result, 0); if Cut = '' then Cut:= #1310; //если шаблон пуст, считаем переводы строк
Repeat k:= Pos(Cut,Text);
if k = 1 then begin Delete(Text, 1, Length(Cut)); CONTINUE
end;
SetArrayLength(Result, GetArrayLength(Result) +1); i:= GetArrayLength(Result) -1;
if k = 0 then
Result[i]:=Text
else begin
Result[i]:= Copy(Text, 1, k -1); Delete(Text, 1, Length(Result[i]) + Length(Cut));
end;
Until Length(Text) * k = 0;
End;
procedure FindFiles(FromDir: String; Mask: String);
var FSR, DSR: TFindRec; FindResult: Boolean;
begin
FindResult:= FindFirst(AddBackslash(FromDir)+Mask, FSR)
while FindResult do begin
if FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then begin
S:= S + AddBackslash(fromDir) + FSR.Name +'|';
end;
FindResult:= FindNext(FSR);
end;
FindResult:= FindFirst(AddBackslash(FromDir)+ '*.*', DSR)
while FindResult do begin
if ((DSR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) and not ((DSR.Name = '.') or (DSR.Name = '..')) then begin
FindFiles(AddBackSlash(FromDir)+ DSR.Name, Mask)
end;
FindResult:= FindNext(DSR);
end;
FindClose(FSR); FindClose(DSR)
end;
procedure RecodeOgg;
var ResultCode: integer; CurFile: String;
begin
FindFiles(ExpandConstant('{app}'), '*.ogg') //Находим все файлы по маске, в выбранной папке
Files:= StringToArray(S, '|') //Переводим в массив
WizardForm.ProgressGauge.Max:= GetArrayLength(Files)-1; //Получаем кол-во файлов
for n:=(GetArrayLength(Files)-1) downto 0 do begin
CurFile:= Files[n]
StringChange(CurFile, AddBackslash(ExpandConstant('{app}')), '')
Exec(ExpandConstant('{app}\oggdec.exe'), '-Q '+ AddQuotes(CurFile), '', SW_Hide, EwWaitUntilTerminated, ResultCode) //Для каждого файла запускаем декодер
DeleteFile(Files[n]) //Удаляем ненужный файл
WizardForm.FilenameLabel.Caption:= Files[n]; //Двигаем прогрессбар
WizardForm.ProgressGauge.Position:= WizardForm.ProgressGauge.Position +1;
end;
DeleteFile(ExpandConstant('{app}\oggdec.exe'))
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
WizardForm.ProgressGauge.Position := 0;
WizardForm.StatusLabel.Caption := 'Извлечение аудио файлов...';
RecodeOgg;
end;
end;
А тут завершение (файлы oggdec и wvunpack удаляются). Кажется список файлов не строится. Ребята, кто-то может помочь?
insombia, в сборке Inno Ultra от Лександера и в рестулзовской версиях уже встроен дизайнер
зы с шрифтом ошибся, прошу прощения
Все, получилось. Теперь есть распаковка и OGG и WV.
[Code]
var
Files: Array of String;
S: String;
n: Integer;
function StringToArray(Text, Cut: String): array of String;
var i, k: Integer;
begin
SetArrayLength(Result, 0);
if Cut = '' then Cut:= #1310; //если шаблон пуст, считаем переводы строк
Repeat k:=Pos(Cut,Text);
if k = 1 then begin Delete(Text, 1, Length(Cut)); CONTINUE
end;
SetArrayLength(Result, GetArrayLength(Result) +1);
i:=GetArrayLength(Result)-1;
if k = 0 then
Result[i]:=Text
else begin
Result[i]:= Copy(Text, 1, k -1);
Delete(Text, 1, Length(Result[i]) + Length(Cut));
end;
Until Length(Text) * k = 0;
end;
procedure FindFiles(FromDir: String; Mask: String);
var FindResult: Boolean;
FSR, DSR: TFindRec;
begin
FindResult:=FindFirst(AddBackslash(FromDir)+Mask, FSR);
while FindResult do begin
if FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then begin
S:= S + AddBackslash(fromDir) + FSR.Name +'|';
end;
FindResult:= FindNext(FSR);
end;
FindResult:= FindFirst(AddBackslash(FromDir)+ '*.*', DSR);
while FindResult do begin
if ((DSR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) and not ((DSR.Name = '.') or (DSR.Name = '..')) then begin
FindFiles(AddBackSlash(FromDir)+ DSR.Name, Mask);
end;
FindResult:= FindNext(DSR);
end;
FindClose(FSR);
FindClose(DSR);
end;
//-------Начало----распаковка OGG------------------------------------------------
procedure RecodeOgg;
var ResultCode: integer; CurFile: String;
begin
FindFiles(ExpandConstant('{app}\hl2\sound\'), '*.ogg'); //Находим все файлы по маске, в выбранной папке
Files:= StringToArray(S, '|'); //Переводим в массив
WizardForm.ProgressGauge.Max:= GetArrayLength(Files)-1; //Получаем кол-во файлов
for n:=(GetArrayLength(Files)-1) downto 0 do begin
CurFile:= Files[n];
StringChange(CurFile, AddBackslash(ExpandConstant('{app}\hl2\sound\')), '');
Exec(ExpandConstant('{app}\hl2\sound\oggdec.exe'), '-Q '+ AddQuotes(CurFile), '', SW_Hide, EwWaitUntilTerminated, ResultCode); //Для каждого файла запускаем декодер
DeleteFile(Files[n]); //Удаляем ненужный файл
WizardForm.FilenameLabel.Caption:= Files[n]; //Двигаем прогрессбар
WizardForm.ProgressGauge.Position:= WizardForm.ProgressGauge.Position +1;
end;
DeleteFile(ExpandConstant('{app}\hl2\sound\oggdec.exe'));
end;
//-------Конец----распаковка OGG------------------------------------------------
//-------Начало----распаковка WV ------------------------------------------------
procedure RecodeWV;
var ResultCode: integer; CurFile: String;
begin
FindFiles(ExpandConstant('{app}\hl2\sound\'), '*.wv'); //Находим все файлы по маске, в выбранной папке
Files:= StringToArray(S, '|'); //Переводим в массив
WizardForm.ProgressGauge.Max:= GetArrayLength(Files)-1; //Получаем кол-во файлов
for n:=(GetArrayLength(Files)-1) downto 0 do begin
CurFile:= Files[n];
StringChange(CurFile, AddBackslash(ExpandConstant('{app}\hl2\sound\')), '');
Exec(ExpandConstant('{app}\hl2\sound\wvunpack.exe'), '-t -q -y '+ AddQuotes(CurFile), '', SW_Hide, EwWaitUntilTerminated, ResultCode); //Для каждого файла запускаем декодер
DeleteFile(Files[n]); //Удаляем ненужный файл
WizardForm.FilenameLabel.Caption:= Files[n]; //Двигаем прогрессбар
WizardForm.ProgressGauge.Position:= WizardForm.ProgressGauge.Position +1;
end;
DeleteFile(ExpandConstant('{app}\hl2\sound\wvunpack.exe'))
end;
//-------Конец----распаковка WV ------------------------------------------------
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
WizardForm.ProgressGauge.Position := 0;
WizardForm.StatusLabel.Caption := 'Decompressing audio files, please wait...';
RecodeOgg;
RecodeWV;
end;
end;
просто надо было константы Files, S и n вынести в самое начало кода, сделать их общими для всех процедур. Теперь можно еще создать процедуру Recode... для распаковки чего-то.
Спасибо demon1232010 с forum.ru-board за оказанную помощь :) и спасибо всем остальным, за то что терпели мои топики
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC