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

  • Автор темы Автор темы YURSHAT
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.
Всем привет, не могли бы мне помочь с CreateFromImag, у меня ничего нету после того как я создал CreateFromFromImage, я так понимаю надо все лейблы заного создавать?
 
YURSHAT, там написано что при этой функции ничего не будет видно (кнопки контролы), но можно же как то сделать чтобы всё было видно, помогите пожалуйста :)
 
а с помощью чего тогда делают другие?
В большинстве случаев используются две формы - на одной контролы, на другой картинка. Но я сделал возможным создание полноценных форм с альфа-каналом. Примеры тому тут
 
а если возможно можете пожалуйста кинуть код с помощью которого можно это реализовать?
 
а если возможно можете пожалуйста кинуть код с помощью которого можно это реализовать?
Код с использованием двух форм есть в том же скрипте Starcraft 2. А второй вариант никому не кину, даже и не просите.
 
Поделитесь, пожалуйста, скриптом для работы со Steam ником.
 
Подскажите, есть ли какой-то способ молча выйти из инсталлятора кроме как вызывать CancelButtonClick? У меня в нем так напутано, что как я его не вызывал и как я его не изменял, у меня инсталлятор не закрывается.
 
Подскажите пожалуйста где можно найти код с помощью которого лейбы с одной страницы можно перенести на другую
 
PlayHard, для этого нужно изменить Parent лейбла на страницу, куда где нужно отображать его. Например CustomLabel.Parent:=WizardForm.FinishedPage
 
alex0413, а что там напутано такого? выложи код, посмотрим..
вынеси эти строчки в начало этой процедуры, а условия пиши после них..
Confirm:=False;
Cancel:=True;
 
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;
 
alex0413, отмену исдона думаю лучше на другую процедуру повесить.. а так попробуй после begin вписать
Confirm:=False;
Cancel:=True;
а остальные условия уже после писать..
 
Последнее редактирование:
Mailchik, нет, не помогло, пытался закрыть таким условием
Код:
        exconfirm:=false;
        excancel:=true;
        CancelButtonClick(wpWelcome,excancel,exconfirm);
P.S. Точнее по нажатии на крестик теперь сразу закрывает, но мне это нужно только по нажатии на кнопку.
P.P.S. Вместо вышеуказанного на кнопку повесил WizardForm.CancelButton.Click;, закрывается сразу, но и по нажатии на крестик закрывается сразу...
 
Последнее редактирование:
Привет всем. Кто может дать код или обьяснить как сделать так чтоб на первой странице инсталлятора была только картинка, без текста, то есть чтоб WizardImage растянулся. Думаю всё ясно. Спасибо за внимание.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху