Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для YURSHAT

Старожил


Сообщения: 163
Благодарности: 78

Профиль | Отправить PM | Цитировать


Sotonisto
Цитата:
Он конфликтует с этой строкой - она для замены кнопок:
Можно сделать так: Первой процедуре CurPageChanged присвоить цифру 1 т.е.
procedure CurPageChanged1(CurPageID: Integer);
begin

бла-бла

Второй цифру 2

procedure CurPageChanged2(CurPageID: Integer);
begin

бла-бла (кнопки)

А в конце скрипта добавить это:

Код: Выделить весь код
procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged1(CurPageID);
CurPageChanged2(CurPageID);
end;
Цитата:
И еще я хочу избавится от белых полос (они портят картинку). Я видел пару раз инстал без них и мне тож захотелось примерно такой же сделать.
Код: Выделить весь код
procedure InitializeWizard();
begin
WizardForm.Bevel.Hide 
WizardForm.Bevel1.Hide 
end;
Цитата:
Напиши пример строки плз.
Используйте прогу ISSkin. А Tiger.cjstyles даст вам черную строку заголовка

Цитата:
З.Ы.: а как на счет прогресс-бара? ну на кряйняк ему же цвет можно как-то изменить?!
Можно наложить на него текстурку
Пример
Код: Выделить весь код
[Setup]
AppName=zz
DefaultGroupName=group
AppVerName=zzz
DefaultDirName={pf}\test
SolidCompression=false
InternalCompressLevel=none
Compression=none

#define PB_ImageFile  "progress1.bmp"//картинка 1 на 19

[Files]
Source: D:\Программы\Inno Setup 5.2.2\Новая папка (4)\DLL\InnoCallback.dll; Flags: dontcopy ignoreversion
Source: {#PB_ImageFile}; DestDir: "{tmp}"; Flags: recursesubdirs ignoreversion
Source: {win}\help\*.hlp; DestDir: {app}\Files; Flags: external

[Code_]
type
    TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);

var
    TimerID: LongWord;
    intOldCurrWidth : Integer;
    ProgressBar_BitmapImage: TBitmapImage;
    ProgressBar_Edit : TEdit;
    ProgressBar_ImageHeight : integer;

// Функции для работы с таймером
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';

// Обработчик нажатия кнопки Отмена
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if CurPageID = wpInstalling then // Просто спрячем наш Прогресс Бар
ProgressBar_Edit.Show;
end;

// Функция вызываемая по таймеру
procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
var
    CurrWidth : single;
begin
    // Используем текущее состояние стандартного Прогресс Бара (ПБ)
    with WizardForm.ProgressGauge do
    begin
        CurrWidth := ( Position * Width ) / Max;            // Вычисляем какой ширины должен быть наш ПБ
        if intOldCurrWidth <> Round( CurrWidth ) then       // Если ширина пока что такая же, то не будем пока что рисовать, чтобы избежать лишних обновлений формы
        begin
            intOldCurrWidth := Round( CurrWidth );
            // Теперича "рисуем" наш ПБ
            ProgressBar_BitmapImage.SetBounds( 0, 0, intOldCurrWidth, ProgressBar_ImageHeight );
            ProgressBar_BitmapImage.Show();                     // Показываем его во всей красе
        end;
    end;
end;

procedure CurPageChanged(CurPageID: Integer);
var
    pfunc: LongWord;
begin
    if CurPageID = wpInstalling then
    begin
        // Устанавливаем таймер
        pfunc := WrapTimerProc( @OnTimer, 4 );
        TimerID := SetTimer( 0, 0, 100, pfunc );
        intOldCurrWidth := 0;
    end;

    // Убираем таймер, когда находимся на последней странице.
    if CurPageID = wpFinished then
        KillTimer( 0, TimerID );
end;

Procedure InitializeWizard;
begin
    // Создаем наш Edit, чтобы у нашего ПБ была более-менее нормальная рамка.
    ProgressBar_Edit := TEdit.Create( WizardForm );
    with ProgressBar_Edit do
    begin
        // Создаем его на месте стандартного ПБ
        Left := WizardForm.ProgressGauge.Left;
        Top := WizardForm.ProgressGauge.Top;
        Width := WizardForm.ProgressGauge.Width;
        Height := WizardForm.ProgressGauge.Height;
        Enabled := False;
        ReadOnly := True;
        // Фоновый цвет делаем точно такой же как у формы.
        Color := WizardForm.Color;
        Parent := WizardForm.InstallingPage;
    end;

    // Распаковываем картинку для нашего ПБ
    ExtractTemporaryFile( '{#PB_ImageFile}' );

    ProgressBar_BitmapImage := TBitmapImage.Create( WizardForm );
    with ProgressBar_BitmapImage do
    begin
        // Загружаем картинку
        Bitmap.LoadFromFile( ExpandConstant( '{tmp}\' ) + '{#PB_ImageFile}' );
        Parent := ProgressBar_Edit;
        Stretch := True;        // Он должен растягиваться
        Hide;                   // Прячем его до поры до времени
    end;

    // Получаем высоту для картинки
    ProgressBar_ImageHeight := ProgressBar_Edit.Height - 2;
    // Прячем стандартный ПБ
    WizardForm.ProgressGauge.Hide;
end;

procedure DeinitializeSetup();
begin
    // Убираем таймер
    KillTimer( 0, TimerID );
end;

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов


Последний раз редактировалось YURSHAT, 07-01-2010 в 02:23.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:07, 06-01-2010 | #815