Inno Setup (создание инсталяционных пакетов). Часть 2

Статус
В этой теме нельзя размещать новые ответы.

PlayHard

Новичок
Всем привет, не могли бы мне помочь с CreateFromImag, у меня ничего нету после того как я создал CreateFromFromImage, я так понимаю надо все лейблы заного создавать?
 

PlayHard

Новичок
YURSHAT, там написано что при этой функции ничего не будет видно (кнопки контролы), но можно же как то сделать чтобы всё было видно, помогите пожалуйста :)
 

Shegorat

Lord of Madness
Администратор
а с помощью чего тогда делают другие?
В большинстве случаев используются две формы - на одной контролы, на другой картинка. Но я сделал возможным создание полноценных форм с альфа-каналом. Примеры тому тут
 

PlayHard

Новичок
а если возможно можете пожалуйста кинуть код с помощью которого можно это реализовать?
 

Shegorat

Lord of Madness
Администратор
а если возможно можете пожалуйста кинуть код с помощью которого можно это реализовать?
Код с использованием двух форм есть в том же скрипте Starcraft 2. А второй вариант никому не кину, даже и не просите.
 

Respin

Мимокрокодил
Поделитесь, пожалуйста, скриптом для работы со Steam ником.
 

aLLeXUs

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

PlayHard

Новичок
Подскажите пожалуйста где можно найти код с помощью которого лейбы с одной страницы можно перенести на другую
 

aLLeXUs

Участник
PlayHard, для этого нужно изменить Parent лейбла на страницу, куда где нужно отображать его. Например CustomLabel.Parent:=WizardForm.FinishedPage
 

Mailchik

Старожил
Проверенный
alex0413, а что там напутано такого? выложи код, посмотрим..
вынеси эти строчки в начало этой процедуры, а условия пиши после них..
Confirm:=False;
Cancel:=True;
 

aLLeXUs

Участник
Mailchik,
Код:
procedure CancelButtonClick(CurPageID: Integer;var Cancel, Confirm: Boolean);
var
    CloseLabel  :TLabel;
begin
  If CurPageID = wpInstalling then
  begin
    SuspendProc;
    KillTimer(0,TimeTimerID);
    SetTaskBarProgressState(0,TBPF_PAUSED);
    ImgPBDelete(ProgressBar);
    ProgressBar:=ImgPBCreate(WizardForm.Handle, ExpandConstant('{tmp}\pbbkgy.png'), ExpandConstant('{tmp}\pby.png'), 10, 220, WizardForm.ClientWidth-20, 25);
    ImgPBSetPosition(ProgressBar,CurrProgress);
    ImgApplyChanges(WizardForm.Handle);
  end;
  if (CurPageID<>99) and (CurPageID <> wpWelcome) then
  begin
    CloseForm:=CreateCustomForm;
    with CloseForm do
    begin
      Width       := 305;
      Height      := 120;
      //BorderIcons := [];   //(biSystemMenu, biMinimize, biMaximize, biHelp)
      BorderStyle :=bsDialog //(bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin)
      Color       := clWindowFrame;
      Position    := poScreenCenter;
      Caption     :=GetWord('Exit');
    end;
    CloseForm.Font:=Font;
    ExtractTemporaryFile('exit.ico');
    SendMessage(CloseForm.Handle, $80, 0, LoadImage(0,ExpandConstant('{tmp}')+'\exit.ico',1,16,16,$1010));
        
    CloseLabel:=TLabel.Create(CloseForm);
    With CloseLabel do
    begin
      SetBounds(10,10,280,100);
      AutoSize      :=false;
      Alignment     :=taCenter;
      Transparent   :=true;
      Parent        :=CloseForm;
      Font.Height   :=-15;
      Caption       :=GetWord('ExitLbl');
    end;
    bCloseYes:=BtnCreate(CloseForm.Handle,20,50,100,40,'button.png',18,false);
    BtnSetText(bCloseYes,GetWord('Yes'));
    BtnSetFont(bCloseYes,Font.Handle);
    BtnSetFontColor(bCloseYes,{#BtnFirstColor},{#BtnFirstColor},{#BtnSecondColor},{#BtnSecondColor});
    BtnSetEvent(bCloseYes,BtnClickEventID,WrapBtnCallback(@ButtonsOnClick,1));
    
    bCloseNo:=BtnCreate(CloseForm.Handle,180,50,100,40,'button.png',18,false);
    BtnSetText(bCloseNo,GetWord('No'));
    BtnSetFont(bCloseNo,Font.Handle);
    BtnSetFontColor(bCloseNo,{#BtnFirstColor},{#BtnFirstColor},{#BtnSecondColor},{#BtnSecondColor});
    BtnSetEvent(bCloseNo,BtnClickEventID,WrapBtnCallback(@ButtonsOnClick,1));
    
    ImgApplyChanges(CloseForm.Handle);
    CloseForm.ShowModal;
    if CloseTemp then
    begin
      confirm:= false;
      CancelButtonClick(99,Cancel,Confirm);
      if CurPageID = wpInstalling then ISDoneCancel:=1;
    end
    else
    begin
      cancel:=false;
      CancelButtonClick(99,Cancel,Confirm);
      if CurPageID = wpInstalling then TimeTimerID:=SetTimer(0,0,1000,WrapTimerProc(@Timer,0));
    end;
  end;
  if CurPageID = wpInstalling then
  begin
    ImgPBDelete(ProgressBar);
    ProgressBar:=ImgPBCreate(WizardForm.Handle, ExpandConstant('{tmp}\pbbkgg.png'), ExpandConstant('{tmp}\pbg.png'), 10, 220, WizardForm.ClientWidth-20, 25);
    ImgPBSetPosition(ProgressBar,CurrProgress);
    ImgApplyChanges(WizardForm.Handle);
    SetTaskBarProgressState(0,TBPF_NORMAL);
    ResumeProc;
  end;
  if CurPageID = wpWelcome then begin
    Cancel:=excancel;
    Confirm:=exconfirm;
    CancelButtonClick(99,Cancel,Confirm);
  end;
нажатие кнопок
Код:
procedure ButtonsOnClick(bBtn:HWND);
var cnc,conf: boolean;
begin
  case bBtn of
    bCloseYes     : begin CloseTemp:=true;  CloseForm.Close; end;
    bCloseNo      : begin CloseTemp:=false; CloseForm.Close; end;
  end;
  BtnRefresh(bBtn);
end;
 

Mailchik

Старожил
Проверенный
alex0413, отмену исдона думаю лучше на другую процедуру повесить.. а так попробуй после begin вписать
Confirm:=False;
Cancel:=True;
а остальные условия уже после писать..
 

Respin

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

aLLeXUs

Участник
Mailchik, нет, не помогло, пытался закрыть таким условием
Код:
        exconfirm:=false;
        excancel:=true;
        CancelButtonClick(wpWelcome,excancel,exconfirm);
P.S. Точнее по нажатии на крестик теперь сразу закрывает, но мне это нужно только по нажатии на кнопку.
P.P.S. Вместо вышеуказанного на кнопку повесил WizardForm.CancelButton.Click;, закрывается сразу, но и по нажатии на крестик закрывается сразу...
 
Последнее редактирование:

makst

Новичок
Привет всем. Кто может дать код или обьяснить как сделать так чтоб на первой странице инсталлятора была только картинка, без текста, то есть чтоб WizardImage растянулся. Думаю всё ясно. Спасибо за внимание.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху