Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)

Модерирует : gyra, Maz

Widok (23-04-2007 18:02): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

[Setup]
AppName=My Program
AppVerName=My Program
CreateAppDir=No
WindowVisible=Yes
 
[Files]
; Копирование *.dll для демонстрации
Source: "{sys}\*.dll"; DestDir: {tmp}; Flags: external
Source: InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
Source: pic1.bmp; DestDir: {tmp}; Flags: dontcopy
Source: pic2.bmp; DestDir: {tmp}; Flags: dontcopy
 
[Code]
type
  TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);
 
var
  BackgroundBitmapImage: TBitmapImage;
  TimerID: LongWord;
 
function WrapTimerProc(callback:TProc; paramcount:integer):longword;
external 'wrapcallback@files:innocallback.dll stdcall';
 
function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord;
external 'SetTimer@user32.dll stdcall';
 
function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord;
external 'KillTimer@user32.dll stdcall';
 
 
//**************************************//
function PercentProgress(): Integer;
begin
  with WizardForm.ProgressGauge do
    begin
      Result:= (Position-Min)/((Max - Min)/100) ;
    end;
end;
 
procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
var
  percent: integer;
   
begin
percent:= PercentProgress;
(* К сожалению, Inno Setup не поддерживает
   задание диапазона в операторе Case. Типа:
   Case X of
     1 .. 10: xxx;
    11 .. 20: yyy; *)
  with BackgroundBitmapImage do
    begin
      if ((percent > 0) and (percent < 10) and (Tag <> 1))  then
        begin
         Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic1.bmp');
         Tag:= 1;
        end else
      if ((percent > 11) and (percent < 20) and (Tag <> 2)) then
        begin
         Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic2.bmp');
         Tag:= 2;
      end;
    end;
end;
 
procedure CurPageChanged(CurPageID: Integer);
var
  pfunc: LongWord;
 
begin
  if CurPageID = wpInstalling then
    begin
      pfunc:= WrapTimerProc(@OnTimer, 4);
      TimerID:= SetTimer(0, 0, 500, pfunc);
 
      BackgroundBitmapImage := TBitmapImage.Create(MainForm);
      with BackgroundBitmapImage do
        begin
          Left := 50;
          Top := 100;
          AutoSize := True;
          Center := True;
          Parent := MainForm;
          Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic1.bmp');
          Tag:= 1;
        end;
    end;
end;
 
procedure InitializeWizard();
begin
  ExtractTemporaryFile('pic1.bmp');
  ExtractTemporaryFile('pic2.bmp');
end;
 
procedure DeinitializeSetup();
begin
  KillTimer(0, TimerID);
end;

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 04:09 26-11-2006
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)
Widok (23-04-2007 18:02): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru