Jump to content
Korean Random

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


Recommended Posts

@Darksoul, понял.. но иконка там располагается нормально. Может казаться неровно из-за скина (как на синем; на красном же нормально). А скин не понравился именно красный.

Link to comment
Short link
Share on other sites

на всех скинах так иконка, вопрос как её передвинуть, я вообще не вижу чтобы в скине её какой то параметр трогал... А как кнопки выровнять? они все 3 на одном рисунке в фотошопе открываются, а я в нём хуже чем рак...

Link to comment
Short link
Share on other sites

Вырубить музыку

Чего-чего? Осталась всё по понятиям расписать для реальных пацанов. Воздержитесь от жаргонизмов.

 

З.Ы. Проверенный временем скин без вырвиглазсвистелокиперделок.

Skin.zip

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

А как кнопки выровнять? они все 3 на одном рисунке в фотошопе открываются, а я в нём хуже чем рак...

Если ты про кнопки: "далее, назад, отменить", то при чём тут вообще фотошоп?

WizardForm.NextButton.Left:=WizardForm.NextButton.Left - 100500 (или сколько там тебе надо);
Edited by Kotyarko_O
Link to comment
Short link
Share on other sites

о, спс, а насчёт вырубить- перейменовал на отключить. А как сделать ссылку спец шрифтом и цветом, чтобы можно было перейти???

Link to comment
Short link
Share on other sites

А как сделать ссылку спец шрифтом и цветом, чтобы можно было перейти???

'Код'

[Code]
var
MouseLabel,SiteLabel: TLabel;

procedure SiteLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://www.koreanrandom.com/forum/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;

procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clRed
end;

procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;

procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clGreen
end;

procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;

procedure InitializeWizard();
begin
MouseLabel:=TLabel.Create(WizardForm)
MouseLabel.Width:=WizardForm.Width
MouseLabel.Height:=WizardForm.Height
MouseLabel.Autosize:=False
MouseLabel.Transparent:=True
MouseLabel.OnMouseMove:=@SiteLabelMouseMove2
MouseLabel.Parent:=WizardForm

SiteLabel:=TLabel.Create(WizardForm)
SiteLabel.Left:=10
SiteLabel.Top:=330
SiteLabel.Cursor:=crHand
SiteLabel.Font.Color:=clBlue
SiteLabel.Caption:='Текст самой ссылки'
SiteLabel.OnClick:=@SiteLabelOnClick
SiteLabel.OnMouseDown:=@SiteLabelMouseDown
SiteLabel.OnMouseUp:=@SiteLabelMouseUp
SiteLabel.OnMouseMove:=@SiteLabelMouseMove
SiteLabel.Parent:=WizardForm
end;

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

'Код'

[code]
var
MouseLabel,SiteLabel: TLabel;

procedure SiteLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://www.koreanrandom.com/forum/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;

procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clRed
end;

procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;

procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clGreen
end;

procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;

procedure InitializeWizard();
begin
MouseLabel:=TLabel.Create(WizardForm)
MouseLabel.Width:=WizardForm.Width
MouseLabel.Height:=WizardForm.Height
MouseLabel.Autosize:=False
MouseLabel.Transparent:=True
MouseLabel.OnMouseMove:=@SiteLabelMouseMove2
MouseLabel.Parent:=WizardForm

SiteLabel:=TLabel.Create(WizardForm)
SiteLabel.Left:=10
SiteLabel.Top:=330
SiteLabel.Cursor:=crHand
SiteLabel.Font.Color:=clBlue
SiteLabel.Caption:='Текст самой ссылки'
SiteLabel.OnClick:=@SiteLabelOnClick
SiteLabel.OnMouseDown:=@SiteLabelMouseDown
SiteLabel.OnMouseUp:=@SiteLabelMouseUp
SiteLabel.OnMouseMove:=@SiteLabelMouseMove
SiteLabel.Parent:=WizardForm
end;
Я сделал так: вот эту часть я записал в отдельный скрипт и прикрепил его в основной

'Развернуть'

varMouseLabel,SiteLabel: TLabel;procedure SiteLabelOnClick(Sender: TObject);varErrorCode: Integer;beginShellExec('open', 'http://www.koreanrandom.com/forum/' '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)end;procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);beginSiteLabel.Font.Color:=clRedend;procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);beginSiteLabel.Font.Color:=clBlueend;procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);beginSiteLabel.Font.Color:=clGreenend;procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);beginSiteLabel.Font.Color:=clBlueend; а вот остальное я прикрепил в основной скрипт вот так: 

'Развернуть'

procedure InitializeWizard();beginInitializeWizard1(); {из BackUpPage.iss, если что}RedesignWizardForm;InitInfo();beginWindowResize();end;beginExtractTemporaryFile('AudioFile.mp3');if BASS_Init(-1, 44100, 0, 0, 0) thenbeginSoundStream := BASS_StreamCreateFile(False,ExpandConstant('{tmp}\AudioFile.mp3'), 0, 0, 0, 0,EncodingFlag or BASS_SAMPLE_LOOP);BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, 2500);BASS_ChannelPlay(SoundStream, False);SoundCtrlButton := TNewButton.Create(WizardForm);SoundCtrlButton.Parent := WizardForm;SoundCtrlButton.Left := 6;SoundCtrlButton.Top := WizardForm.ClientHeight -SoundCtrlButton.Height - 10;SoundCtrlButton.Width := 110;SoundCtrlButton.Caption :=ExpandConstant('{cm:SoundCtrlButtonCaptionSoundOff}');SoundCtrlButton.OnClick := @SoundCtrlButtonClick;end;end;beginMouseLabel:=TLabel.Create(WizardForm)MouseLabel.Width:=WizardForm.WidthMouseLabel.Height:=WizardForm.HeightMouseLabel.Autosize:=FalseMouseLabel.Transparent:=TrueMouseLabel.OnMouseMove:[email protected]:=WizardFormSiteLabel:=TLabel.Create(WizardForm)SiteLabel.Left:=50SiteLabel.Top:=80SiteLabel.Cursor:=crHandSiteLabel.Font.Color:=clBlueSiteLabel.Caption:='Ссылка на офф. форум'SiteLabel.OnClick:[email protected]:[email protected]:[email protected]:[email protected]:=WizardForm

end;

end;

 

procedure DeinitializeSetup;

begin

BASS_Free;

UnloadSkin();

end;

 

procedure DeinitializeUninstall();

begin

UnloadSkin();

 

end;

 

Вопрос: почему не отображается нигде??? Компилит без ошибок вообще, ранне на этот скин подобным образом вставала ссылка, но там небыло никаких настроек стиля написания.

Link to comment
Short link
Share on other sites

 

 

почему не отображается нигде???
Ничего не понял из-под спойлеров.. Попробуй нормально вставить код, а не в перемешку всё.

 

О как все активизировались перед выходом патча! :heh:

Надо бы и мне уже начать адаптацию, а то как-то забил на всё это)

Link to comment
Short link
Share on other sites

О как все активизировались перед выходом патча! :heh:

Ну так, всё для народа, им же хлеба и модов подавай, да в красивой обёртке:), вот и хочется сделать что-то и красивое, и нужное:), а вы батенька поможете в скрипте справа от кнопки вкл музыки вставить картинку-ссылку на кореан???

Ничего не понял из-под спойлеров.. Попробуй нормально вставить код, а не в перемешку всё.

 

Надо бы и мне уже начать адаптацию, а то как-то забил на всё это)

 

Вот к этому сможете прикрутить?

install.rar

Link to comment
Short link
Share on other sites

вставить картинку-ссылку на кореан???

С картинкой всё проще, чего сразу не сказал..(только координаты поменяй. Вырвал из своего)

#define MyAppURL "www.что-то_там.com"

[Files]
Source: logo.bmp; Flags: dontcopy noencryption noencryption;

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

procedure RedesignWizardForm;
var
  BtnPanel: TPanel;
  BtnImage: TBitmapImage;
begin
  ExtractTemporaryFile('logo.bmp')
  BtnPanel:=TPanel.Create(WizardForm)
  with BtnPanel do
   begin
    Left:=0
    Top:=374
    Width:=178
    Height:=45
    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;

 

Или всё же текст крутить?

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

И ещё, как сделать чтобы тут в окне писалась нужная мне инфа? где её изменить? и как передвинуть этот текст "О программе " по центру, а то так в маленьких окнах везде он такой корявый:( печалька...


С картинкой всё проще, чего сразу не сказал..(только координаты поменяй. Вырвал из своего)

#define MyAppURL "www.что-то_там.com"

[Files]
Source: logo.bmp; Flags: dontcopy noencryption noencryption;

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

procedure RedesignWizardForm;
var
  BtnPanel: TPanel;
  BtnImage: TBitmapImage;
begin
  ExtractTemporaryFile('logo.bmp')
  BtnPanel:=TPanel.Create(WizardForm)
  with BtnPanel do
   begin
    Left:=0
    Top:=374
    Width:=178
    Height:=45
    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;

 

Или всё же текст крутить?

это типа надо отдельный скрипт, или части этого кода в основной разпихать? например то что в файлз дописать к файлз и тд? Или как?

post-21541-0-39093000-1402335439_thumb.png

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

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

Именно так. Но можно и в отдельный.

 

И ещё, как сделать чтобы тут в окне писалась нужная мне инфа? где её изменить?
procedure AboutSetupClick;
begin
  MsgBox('Сюда что-то написать', mbInformation, MB_OK);
end;

'Что ты там передвигать собрался?'

post-16412-0-23992600-1402336137_thumb.png
Edited by Kotyarko_O
Link to comment
Short link
Share on other sites

 У меня 5.5.1, попробую обновиться..

 

UPD: обновился, теперь тут:

procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);

ругается на:

UnknownType 'TItemArea'

Это процедура показа картинки при наведении на компонент курсора..

Могу скинуть сам скрипт

Котярко, как ты решил эту проблему ?

Link to comment
Short link
Share on other sites

 Установил ansi`шную версию Inno.

Слушай, можешь мне носом ткнуть буквально так: выше я скинул весь свой основной скрипт, допили в него то что ты мне скинул по поводу доп инфы чтобы можно было дописать, и лого с этого форума, помоги пожалуста, очень хочется добавить эти 2 фичи.

с 3.

Сорри, тупанул, с 3 ночи:)

и если надо конечно, то у меня тоже (а) версия инно, ну это на всякий.

Именно так. Но можно и в отдельный.

procedure AboutSetupClick;
begin
  MsgBox('Сюда что-то написать', mbInformation, MB_OK);
end;

'Что ты там передвигать собрался?'

когда открываешь в этом окне о программе, там у меня видно на скрине что текст по левому краю, сама надпись "О программе", и всё что в таких окнах маленьких открывается, надписи в том месте тоже по левому краю, а мне нужно чтобы надписи по центру ровнялись.

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

Слушай, можешь мне носом ткнуть буквально так: выше я скинул весь свой основной скрипт, допили в него то что ты мне скинул по поводу доп инфы чтобы можно было дописать, и лого с этого форума, помоги пожалуста, очень хочется добавить эти 2 фичи.

install.rar

(выделил комментариями то, что дописал). Только тебе нужно будет ещё сделать картинку, с расширением *.bmp.

 

 

когда открываешь в этом окне о программе, там у меня видно на скрине что текст по левому краю, сама надпись "О программе", и всё что в таких окнах маленьких открывается, надписи в том месте тоже по левому краю, а мне нужно чтобы надписи по центру ровнялись.
Понял. С этим ничего не поделать. Это уже контекстное меню винды, не относящееся к инсталлу.
Edited by Kotyarko_O
Link to comment
Short link
Share on other sites

 

attachicon.gifinstall.rar

(выделил комментариями то, что дописал). Только тебе нужно будет ещё сделать картинку, с расширением *.bmp.

 

 

Понял. С этим ничего не поделать. Это уже контекстное меню винды, не относящееся к инсталлу.

 

Вот что происходит прикомпиляции с тем скриптом, что ты скинул, подозреваю что слетает всё из-за "RedesignWizardForm", пишет что продублированная выше, а как их обьединить?

вот этот раздел

 

 

procedure RedesignWizardForm;

begin

  with WizardForm do

  begin

    AutoScroll := False;

  end;

end;

const

    UNDEF_INDEX = -777;

function GetCursorPos(var lpPoint: TPoint): BOOL; external '[email protected] stdcall';

var

    InfoPic: TBitmapImage;

    LastIndex: Integer;

    TempPath: String;

procedure ShowPicHint(const PicFilePath: String);

var

    pt: TPoint;

begin

    if not GetCursorPos(pt) then Exit;

    InfoPic.Bitmap.LoadFromFile(PicFilePath);

    InfoPic.SetBounds(ScaleX(1), ScaleY(41), ScaleX(250), ScaleY(200));   // картинка

    InfoPic.Show;

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

             //-----------------------КАРТИНКИ----------------------------\\

            '1.1 Прицел от Dellux.': UndefPic := '1.bmp';   // пишем точно так же, как прописано в компонентах

            '1.2 Прицел Минималистический.': UndefPic := '2.bmp';

            '1.3 Прицел Тайпан.': UndefPic := '3.bmp';   // пишем точно так же, как прописано в компонентах

            '2.1 Дамаг панель Rabbit.': UndefPic := '4.bmp';

        else

            begin

                LastIndex := UNDEF_INDEX;

                InfoPic.Hide;

                Exit;

            end;

        end;

        if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic);

        ShowPicHint(TempPath + UndefPic);

    finally

        LastIndex := Index;

    end;

end;

и этот:

 

 

var

  BtnPanel: TPanel;

  BtnImage: TBitmapImage;

begin

  ExtractTemporaryFile('logo.bmp')

  BtnPanel:=TPanel.Create(WizardForm)

  with BtnPanel do

   begin

    Left:=0

    Top:=324

    Width:=178

    Height:=45

    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;

Edited by Darksoul
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...