R.G. Механики

Скрипт R.G. Механики 1.0

Нет прав для скачивания

Sigvan

Новичок
Только обратил внимание, у меня в этом скрипте шрифт не такой почему-то, мой скрин:Безымянный.jpg и отсюда скрин: r.g.mehaniki_s2.jpg почему-так? И такой вопрос, что определяет какие изображения должны отображаться на разных страницах мастера, т.е. здесь например:2Безымянный.jpg эта рамка только на 1-ой странице приветствия а дальше, на остальных страницах другая: 3Безымянный.jpg а название игры вообще на всех страницах? Какой код за это отвечает?
 

tihiy_don

Старожил
Только обратил внимание, у меня в этом скрипте шрифт не такой почему-то, мой скрин:Посмотреть вложение 5715 и отсюда скрин: Посмотреть вложение 5714 почему-так? И такой вопрос, что определяет какие изображения должны отображаться на разных страницах мастера, т.е. здесь например:Посмотреть вложение 5716 эта рамка только на 1-ой странице приветствия а дальше, на остальных страницах другая: Посмотреть вложение 5717 а название игры вообще на всех страницах? Какой код за это отвечает?
сбросьте фрагмент кода.
 

EvilAlex

Старожил
За расположение картинок отвечают вот эти строки...
Надеюсь в скрипте найдешь.
Код:
Wizard1:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\BGImage1.png'),0,0,WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
Wizard2:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage1.png'),0,315,WizardForm.ClientWidth,85,True,True);
Wizard3:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage3.png'),0,181,WizardForm.ClientWidth,138,True,True);
Wizard4:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage2.png'),3,205,590,91,True,True);
Wizard5:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\BGImage2.png'),0,0,600,100,True,False);
Wizard6:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage4.png'),0,81,600,238,True,True);
Wizard7:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage5.png'),3,105,594,74,True,True);
Wizard8:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage6.png'),90,180,395,45,True,True);
Wizard9:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage7.png'),5,230,346,77,True,True);
Wizard10:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\FLRImage1.png'),17,170,79,64,True,True);
а за шрифт, вроде этот...
Код:
procedure IsMyFont;
begin
  Font1:=NewFont(20,500,0,0,0,'Corbel');
  Font2:=NewFont(17,500,0,0,0,'Franklin Gothic Medium');
  WizardForm.Font.Handle:=Font1;
  WizardForm.Font.Color:=TfontColor;
end;
поправил код + другая длл, все работает...
Спасибо - vint56 за кусок кода из закоса R.G. Mechanics от Snoopak96
 

Вложения

Последнее редактирование:

Sigvan

Новичок
сбросьте фрагмент кода.
procedure welcom;
begin
Wizard1:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\BGImage1.png'),0,0,WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
Wizard2:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage1.png'),0,315,WizardForm.ClientWidth,85,True,True);
Wizard3:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage3.png'),0,181,WizardForm.ClientWidth,138,True,True);
Wizard4:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage2.png'),3,205,590,91,True,True);
Wizard5:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\BGImage2.png'),0,0,600,100,True,False); //Лого игры

WelcomLabel1:= TLabel.Create(WizardForm);
with WelcomLabel1 do begin
Left:= 30;
Top:= 219;
Width:= 550;
Height:= 58;
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
ParentFont := True;
Parent:= WizardForm;
Caption:=ExpandConstant('{cm:Welcom1}');
end;
end;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function NumToStr(Float: Extended): String;
begin
Result:= Format('%.2n', [Float]); StringChange(Result, ',', '.');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
SetLength(Result, Length(Result)-1);
end;

function MbOrTb(Float: Extended): String;
begin
if Float < 1024 then Result:= NumToStr(Float)+ExpandConstant('{cm:Size1}') else
if Float/1024 < 1024 then Result:= NumToStr(Float/1024)+ExpandConstant('{cm:Size2}') else
Result:= NumToStr(Float/(1024*1024))+ExpandConstant('{cm:Size3}');
end;

procedure DirEditOnChange(Sender: TObject);
var Drive: String;
begin
DirEditLabel.Caption:=MinimizePathName(WizardForm.DirEdit.Text, DirEditLabel.Font, DirEditLabel.Width);
Drive:= ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Drive, True, FreeMB, TotalMB);
InstallSpacelabel1.Caption:=ExpandConstant('{cm:Install1}')+ MbOrTb({#NeedInstallSize});
InstallSpacelabel2.Caption:=ExpandConstant('{cm:Install2}')+ MbOrTb({#NeedSinceInstallSize});
if WizardForm.CurPageID = wpWelcome then begin
end;
if (FreeMB>{#NeedInstallSize}) then begin
WizardForm.NextButton.Enabled:= (FreeMB>{#NeedInstallSize});
BtnSetEnabled(hNextBtn, True);
end else begin
WizardForm.NextButton.Enabled:= (FreeMB>{#NeedInstallSize});
BtnSetEnabled(hNextBtn, False);
end;
end;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure SelectDir;
begin
Wizard6:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage4.png'),0,81,600,238,True,True);
Wizard7:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage5.png'),3,105,594,74,True,True);
Wizard8:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage6.png'),90,180,395,45,True,True);
Wizard9:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage7.png'),5,230,346,77,True,True);
Wizard10:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\FLRImage1.png'),17,167,79,64,True,True);

SelectDirLabel:= TLabel.Create(WizardForm);
with SelectDirLabel do begin
Left:= 30;
Top:= 119;
Width:= 594;
Height:= 74;
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
ParentFont := True;
Parent:= WizardForm;
Caption:=ExpandConstant('{cm:SelectDir}');
end;

DirEditLabel := TLabel.Create(WizardForm);
with DirEditLabel do begin
Left:=112;
Top:= 191;
Width:= 350;
Height:= 20;
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
ParentFont := True;
Caption := MinimizePathName(WizardForm.DirEdit.Text, DirEditLabel.Font, DirEditLabel.Width);
Parent := WizardForm;
end;

InstallSpacelabel1:= TLabel.Create(WizardForm);
with InstallSpacelabel1 do begin
Left:= 30;
Top:= 244;
Width:= 594;
Height:= 74;
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
ParentFont := True;
Parent:= WizardForm;
end;

InstallSpacelabel2:= TLabel.Create(WizardForm);
with InstallSpacelabel2 do begin
Left:= 30;
Top:= 269;
Width:= 594;
Height:= 74;
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
ParentFont := True;
Parent:= WizardForm;
end;

WizardForm.DirEdit.OnChange:=@DirEditOnChange;
end;
Здесь получается BGImage1.png, основная картинка инстала, SDWImage1.png нижняя рамка:1Безымянный.jpg они на всех страницах мастера, SDWImage3.png это где текст приветствия: 2Безымянный.jpg она только на первой странице приветствия, как это реализовано не могу понять. Нужно чтобы SDWImage3.png была на всех страницах как и лого игры или SDWImage1.png например.
 

Sigvan

Новичок
За расположение картинок отвечают вот эти строки...
Надеюсь в скрипте найдешь.
Код:
Wizard1:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\BGImage1.png'),0,0,WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
Wizard2:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage1.png'),0,315,WizardForm.ClientWidth,85,True,True);
Wizard3:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage3.png'),0,181,WizardForm.ClientWidth,138,True,True);
Wizard4:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage2.png'),3,205,590,91,True,True);
Wizard5:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\BGImage2.png'),0,0,600,100,True,False);
Wizard6:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage4.png'),0,81,600,238,True,True);
Wizard7:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage5.png'),3,105,594,74,True,True);
Wizard8:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage6.png'),90,180,395,45,True,True);
Wizard9:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\SDWImage7.png'),5,230,346,77,True,True);
Wizard10:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\FLRImage1.png'),17,170,79,64,True,True);
а за шрифт, вроде этот...
Код:
procedure IsMyFont;
begin
  Font1:=NewFont(20,500,0,0,0,'Corbel');
  Font2:=NewFont(17,500,0,0,0,'Franklin Gothic Medium');
  WizardForm.Font.Handle:=Font1;
  WizardForm.Font.Color:=TfontColor;
end;
возможно у тебя его в системе нет, вот и отображается по дефолту!?
Что эти строки отвечают за картинки это я знаю, вопрос вот в чём, нужно чтобы SDWImage3.png выводилась на всех страницах мастера как и лого игры - это BGImage2.png. На счёт шрифтов, я думал, что они в IsMyFont.dll вшиты, какой тогда смысл от неё, если один фиг нужно чтобы инстал в систему эти шрифты ставил? для этого она не нужна.
 

EvilAlex

Старожил
На счёт шрифтов, я думал, что они в IsMyFont.dll вшиты, какой тогда смысл от неё, если один фиг нужно чтобы инстал в систему эти шрифты ставил? для этого она не нужна.
Он берет их из системы...
Есть код и библиотека. чтоб привязать свои и подгружать их из инсталлятора (обычно распаковывается на время установки в папку темп)
Что эти строки отвечают за картинки это я знаю, вопрос вот в чём, нужно чтобы SDWImage3.png выводилась на всех страницах мастера как и лого игры - это BGImage2.png.
а картинки берут разрешение из секции:
Код:
procedure Hide(CurPageID: Integer);
begin
  ImgSetVisibility(Wizard3, False); //- отключено отображение.
end;
а в секции:

procedure Show(CurPageID: Integer);
begin case CurPageID of
  wpWelcome:
begin
  ImgSetVisibility(Wizard3, True); //- включаешь.
end;
  wpSelectDir:
begin
// нет такого кода как в wpWelcome, значит инстал берет значение из секции procedure Hide(CurPageID: Integer); и выключает отображение.
end;
end;
end;
просто втыкаешь строку - ImgSetVisibility(Wizard3, True); туда где хочешь чтоб была картинка... Или удаляешь везде ту строку которую не надо скрывать и он будет отображать картинку везде...

вот и смотри, лого это у нас BGImage2.png. которая находится в Wizard5. ищем ее в секции procedure Hide(CurPageID: Integer); !
там ее нет, а значит она не скрыта\отключена, значит инсталлятор по умолчанию выводит ее на всех страницах.
если хочет отобразить на определенной странице. вносишь строку в секцию procedure Hide(CurPageID: Integer); с флагом False - ImgSetVisibility(Wizard5, False);, а там где надо. допустим на первой странице приветствия. то в секции procedure Show(CurPageID: Integer); ищешь страницу wpWelcome: и в нее уже вносишь строку с флагом True - ImgSetVisibility(Wizard5, True); !
и инсталлятор будет скрывать везде. кроме той страницы где у тебя указано что надо показать!

P.S. надеюсь описал понятно. на ночь глядя. да еще и сам чайник)))
 
Последнее редактирование:

Sigvan

Новичок
@EvilAlex, Спасибо, что подсказал где копать, разобрался наконец с картинками. По шрифтам, да, с той другой дллкой работает, а с этой которая в шаблоне почему-то нет. Просто интересно, это только у меня так или остальные кто скачал не обратили на это внимания? И я так и не понял дллка шрифт откуда берёт? В системе и недолжно по сути быть каких-то нужных интсалу шрифтов или каких либо других компонентов так ведь...
 

EvilAlex

Старожил
@EvilAlex, И я так и не понял дллка шрифт откуда берёт? В системе и недолжно по сути быть каких-то нужных интсалу шрифтов или каких либо других компонентов так ведь...
В системе много разных, и те которые указаны в инстале, тоже есть. Яб знал как оно работает))

Глянь тут - "Панель управления\Все элементы панели управления\Шрифты"
Эт мои, там есть лишние. а в остальном те которые инстал просит. у меня по умолчанию...

1618075830757.png
 

burza

Новичок
подскажите пробую компиляцию этим скриптом а мне выдает : isdone.dll неизвестный метод сжатия архиваошибка 2, что не так?

нашол) взял раскоментировал все строки где были архиваторы в начале.но теперь ошибка precomp. incorect version? а потом еще и не совпадают контрольные сумы? со скриптом ничего не делал.
 

vano_next

Новичок
Всем привет. Народ вот первый запуск и столкнулся с проблемой. заменил даже кусок кода от EvilAlex
Сам впервые, скриншоты ошибок по порядку прилагаю. Использую Inno Setup 6 VCL.
1.jpg
1.jpg
Нашел решение! Просто запускайте другой версией: InnoUltra
 
Последнее редактирование:

Mr-r00t

Новичок
Как бы "тупо" это не звучало, этот скрипт скрипт распаковывает в 3 раза медленнее чем стандартный скрипт IsDone 0.6f.
Берем одни и те же данные и стандартный скрипт IsDone 0.6f - время установки 13 мин.
Меняем только скрипт, все остальное оставляем тем же - время от начала установки 20 мин. распаковано только около 50 процентов.
Что-то тут не чисто :)
 
Сверху