Jump to content
Korean Random

Создание инсталляторов для модпаков на базе Inno Setup


Recommended Posts

А зачем тебе ещё другие варианты знать? Этого хватит.

думал можно сделать типа этого 

 

  WizardForm.WizardBitmapImage.Width:=WizardForm.WizardBitmapImage.Width + WidthOffset;

  WizardForm.WizardBitmapImage.Height:=WizardForm.WizardBitmapImage.Height + HeightOffset;

  WizardForm.WizardBitmapImage.Width:=WizardForm.WizardBitmapImage.Width + WidthOffset;

 

но у вы он не подгоняет под тип размер WizardForm

 

и как растянуть страницу BackUpPage я так же ещё не понял

Edited by liked
Link to comment
Short link
Share on other sites

и как растянуть страницу BackUpPage я так же ещё не понял

Что там непонятного.. там координаты для каждого элемента уже прописаны, просто изменить их и всё.

 

и тишина) не подсказать не помочь не кому

А ты не думал, что просто никто не хочет тебе помогать?

Edited by Kotyarko_O
Link to comment
Short link
Share on other sites

Примерно разабрался, нужно было смотреть не основной скрипт а и менно скрипт страницы  BackUpPage

Edited by liked
Link to comment
Short link
Share on other sites

Уважаемые, обратите внимание на скрин. На больших разрешениях мониторов такая штука происходит. В данном случае разрешение 1920*1080. То же самое происходит и с инсталятором (происходит смещение некоторых элементов). Может кто-то предположить: как с этим бороться? В какую сторону копать? :-)

post-11632-0-37886600-1401024744_thumb.jpg

Link to comment
Short link
Share on other sites

@ventura69, масштабирование интерфейса/шрифтов в винде включено? Это вот оно самое, такое даёт. А всё потому что у формы и элементов автоскейл не правильно работает.
Edited by StranikS_Scan
Link to comment
Short link
Share on other sites

ешё такой вопросик, как вставлять фон (картинку) например в списке выбора модов, чтоб не белый фон был а картинка

 

и как сделать прозрачный фон? чтоб видно было задний план а текст на переднем

Edited by liked
Link to comment
Short link
Share on other sites

@ventura69, масштабирование интерфейса/шрифтов в винде включено? Это вот оно самое, такое даёт. А всё потому что у формы и элементов автоскейл не правильно работает.

Вот я и пытаюсь понять: можно ли как-то обойти масштабирование в Винде и прописать как-то в скрипте. А по поводу "автоскейл" не понял. Просветите? И простите за дремучесть...

Link to comment
Short link
Share on other sites

Может кто-то предположить: как с этим бороться?

А не пробовал указать размер для этого элемента? (возможно, так он не будет масштабироваться)

Других вариантов я не вижу..

Edited by Kotyarko_O
Link to comment
Short link
Share on other sites

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

 

InfoPic := TBitmapImage.Create(WizardForm)
    with InfoPic do
    begin
        Parent := WizardForm.SelectComponentsPage;
        SetBounds(ScaleX(0), ScaleY(0), ScaleX(100), ScaleY(100));
        ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
        Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
    end;
end;

 

где тут ошибка ?

Link to comment
Short link
Share on other sites

А не пробовал указать размер для этого элемента? (возможно, так он не будет масштабироваться)

Других вариантов я не вижу..

Дайте угадаю (Inno Ultra под рукой нет, поэкспериментировать не с чем): если я хочу нормально отображать все свои элементы, отвязать от разрешения мониторов, я должен во все свои элементы инсталлятора вставить абсолютный его (элемента) размер. И, желательно, привязать его положение от верх/лево рабочего окна, чтобы не ползал. Верно?

Link to comment
Short link
Share on other sites

если я хочу нормально отображать все свои элементы, отвязать от разрешения мониторов, я должен во все свои элементы инсталлятора вставить абсолютный его (элемента) размер. И, желательно, привязать его положение от верх/лево рабочего окна, чтобы не ползал. Верно?

Почти.. не абсолютно всем элементам прописать, а только тем, что смещаются.

 

где тут ошибка ?

Ошибки нет.

Edited by Kotyarko_O
Link to comment
Short link
Share on other sites

Почти.. не абсолютно всем элементам прописать, а только тем, что смещаются.

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

Link to comment
Short link
Share on other sites

Почти.. не абсолютно всем элементам прописать, а только тем, что смещаются.

 

Ошибки нет.

Вот скрипт : BigMusic (liked).rar

при наведении на моды (там где ставить голочки надо картинка пропадает (нижния картинка)

 

а я хотел бы чтоб она всегда вот так была post-6639-0-09347600-1401151873_thumb.png

 

или как вариант чтоб за место картинки выскакивало там описание к каждому моду, вобще было бы супер

 

на сколько я понял проблема где то тут 

 

procedure InitInfo();

begin

    WizardForm.TypesCombo.Hide;

    WizardForm.ComponentsList.SetBounds(ScaleX(260), ScaleY(40), ScaleX(155), ScaleY(153));

    WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove;

    WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave;

    TempPath := AddBackslash(ExpandConstant('{tmp}'));

    LastIndex := UNDEF_INDEX;

Вот что нарыл

 

'код'

[setup]

AppName=Моя программа

AppVersion=1.5

AppPublisher=YURSHAT

AppPublisherURL=

DefaultDirName={pf}\Моя программа

 

[Languages]

Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl"

 

[CustomMessages]

RU.CompName1=Компонент 1

RU.CompName2=Компонент 2

RU.ComponentsInfo=Наведите курсор мыши на компонент, чтобы прочитать его описание.

RU.ComponentsImgInfo=Наведите курсор мыши на компонент, чтобы посмотреть его превью.

RU.CompDesc1=Описание первого компонента

RU.CompDesc2=Описание второго компонента

 

[Files]

Source: "compiler:WizModernImage.bmp"; DestName: "CompDescImg1.bmp"; Flags: dontcopy

Source: "compiler:WizModernImage-IS.bmp"; DestName: "CompDescImg2.bmp"; Flags: dontcopy

 

[Types]

Name: full; Description: Full installation; Flags: iscustom

 

[Components]

Name: comp1; Description: "{cm:CompName1}"; Types: full

Name: comp2; Description: "{cm:CompName2}"; Types: full

 

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('CompDesc1'), 'CompDescImg1.bmp');

AddCompDescription(2, CustomMessage('CompDesc2'), 'CompDescImg2.bmp');

end;

Edited by liked
Link to comment
Short link
Share on other sites

или как вариант чтоб за место картинки выскакивало там описание к каждому моду, вобще было бы супер

Поройтесь в папочке Inno Setup 5. Там много примеров и скриптов, как таковых. Видел и скрипт на вывод картинки с текстом (папки scripts/ComponentsInfo) называется CompDescImageAndText.iss. 

Link to comment
Short link
Share on other sites

Поройтесь в папочке Inno Setup 5. Там много примеров и скриптов, как таковых. Видел и скрипт на вывод картинки с текстом (папки scripts/ComponentsInfo) называется CompDescImageAndText.iss. 

Спасибо, шас пробую замутить!

 

Ну вот что получилось 

 

post-6639-0-00667400-1401176065_thumb.jpg

Edited by liked
Link to comment
Short link
Share on other sites

Вот хоть тут помогите :) уже башка квадратная 

 

'Код'




procedure LogoOnClick(Sender: TObject);
var ResCode: Integer;
begin
ShellExec('', '{#MyAppURL}', '' , '', SW_SHOW, ewNoWait, ResCode)
end;



var
BitmapImage1: TBitmapImage;

procedure RedesignWizardForm;
var
i: integer;
BtnPanel: TPanel;
BtnImage: TBitmapImage;
begin
ExtractTemporaryFile('logo.bmp')
BtnPanel:=TPanel.Create(WizardForm)
with BtnPanel do begin
Left:=0
Top:=0
Width:=179
Height:=46
Cursor:=crHand
OnClick:=@logoOnClick
Parent:=WizardForm
end;
BtnImage:=TBitmapImage.Create(WizardForm)
with BtnImage do begin
AutoSize:=True;
Enabled:=False;
Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\logo.bmp')
Parent:=BtnPanel
end;
end;
begin
{ BitmapImage1 }
BitmapImage1 := TBitmapImage.Create(WizardForm);
with BitmapImage1 do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(115);
Width := ScaleX(620);
Height := ScaleY(260);
ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
end;
end;

 

post-6639-0-11262500-1401198385_thumb.png

Link to comment
Short link
Share on other sites

@liked,

'Убери из кода строки, которые я отметил на скрине'

post-16412-0-51281400-1401200241_thumb.png

И в последнем end`е, на который ругается компилятор, поставь ".".

Если я правильно посчитал все операторные скобки - это должно помочь.

Edited by Kotyarko_O
Link to comment
Short link
Share on other sites

@liked,

'Убери из кода строки, которые я отметил на скрине'

И в последнем end`е, на который ругается компилятор, поставь ".".

Если я правильно посчитал все операторные скобки - это должно помочь.

Спасибо, а я уже сижу смотрю типа (смотрю в книгу вижу фигу)

 

ешё раз спасибо...

 

 

не находил скрипт на вставку музыки с кнопкой отключения?

Link to comment
Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...