Старожил
Сообщения: 163
Благодарности: 78
|
Профиль
|
Отправить PM
| Цитировать
Sotonisto
Цитата:
Он конфликтует с этой строкой - она для замены кнопок:
|
Можно сделать так: Первой процедуре CurPageChanged присвоить цифру 1 т.е.
procedure CurPageChanged1(CurPageID: Integer);
begin
бла-бла
Второй цифру 2
procedure CurPageChanged2(CurPageID: Integer);
begin
бла-бла (кнопки)
А в конце скрипта добавить это:
Код: ![Выделить весь код](images/misc/selectcode.png)
procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged1(CurPageID);
CurPageChanged2(CurPageID);
end;
Цитата:
И еще я хочу избавится от белых полос (они портят картинку). Я видел пару раз инстал без них и мне тож захотелось примерно такой же сделать.
|
Код: ![Выделить весь код](images/misc/selectcode.png)
procedure InitializeWizard();
begin
WizardForm.Bevel.Hide
WizardForm.Bevel1.Hide
end;
Цитата:
Напиши пример строки плз.
|
Используйте прогу ISSkin. А Tiger.cjstyles даст вам черную строку заголовка
Цитата:
З.Ы.: а как на счет прогресс-бара? ну на кряйняк ему же цвет можно как-то изменить?!
|
Можно наложить на него текстурку
Пример
Код: ![Выделить весь код](images/misc/selectcode.png)
[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
|