Цитата:
Еще один вопросик. Можно сделать так, чтобы путь ((после выбора) куда приложение устанавливается) после установки заменял определенную переменную в текстовом файле?
Собственно вот!!!
Еще один вопросик. Можно сделать так, чтобы путь ((после выбора) куда приложение устанавливается) после установки заменял определенную переменную в текстовом файле?
как называется сама эта кнопка выбора каталога ?-- WizardForm.DirBrowseButton
Можно сделать так, чтобы путь ((после выбора) куда приложение устанавливается) после установки заменял определенную переменную в текстовом файле?
Твой код почему то выдает массу ошибок прикомпиляции-- а куда ты его вставляешь?
Я уже неоднократно спрашивал, НО еще раз спрошу, возможно, ли сделать кнопки для управления музыкой в формате .mp3 через библиотеку bass.dll?
нету случайно исходного кода страницы с выбором дирректории ?-- нет. я стараюсь использовать стандартные возможности. Если речь идет об отсутствии в диалоге сетевого окружения, моего компьютера и документов, то эти вещи есть в диалоге выбора директорий (см. функцию BrowseForFolder). Но тогда надо перекрывать выбор по нажатию той же кнопки WizardForm.DirBrowseButton. Пример перекрытия я давал здесь
[Code]
function InitializeSetup(): Boolean;
begin
Result := True;
begin
if not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322')
or not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727')
then
begin
if MsgBox('Внимание! На Вашем компьюторе не установлен Microsoft .NET Framework 1.1 или Microsoft .NET Framework 2.0.'#13#13'Вы уверены что хотите продолжить установку?', mbError, MB_YESNO) = idNo
then
Result := False;
end;
end;
end;
определить, установлен ли .NET Framework и какая версия?
Жаль что нельзя с текстом
Спасибо! Текст теперь появился, осталось только доделать то что ты не смог БУДЕТ абсолютный клон InsatllSheild.
Сделал скин для инно в стиле Windows XP http://data.cod.ru/400981450
Напоминает Инсталлятор Astrum InstallWizard 2
Да....жаль только во время установки нельзя свернуть в угол экрана!!!
;Интерфейс установки максимально приближенный к InstallShield (я так думаю) реализованный стандартными (почти ) средствами Inno Setup. Для создания слйд-шоу используется библиотека IsXbb.
;Используется Splash-заставка.
;При запуске инсталлятора отсутствует "мозолящий" глаза синий фон и имя программы.
;Скачать IsXbb.dll можно с http://www.istool.org или http://data.cod.ru/381517258. Размер - ~33 Кб.
[Setup]
DisableProgramGroupPage=yes
WindowShowCaption=no
BackColor=$000000
[Files]
;Рисунок используемый для отображения на странице подготовки (увидете - поймёте)
Source: "C:\Program Files\Inno Setup 5\WizModernSmallImage.bmp"; DestDir: {tmp}; Flags: dontcopy;
;Так же используется на странице подготовки как Splash-заставка
Source: "Temp\Splash.bmp"; DestDir: {tmp}; Flags: dontcopy;
;В качестве фона используется изоброжение в формате .bmp. Уменьшить размер файла (почти без видимых потерь) монжо в Adobe Photoshop (Image => Mode => Idexed Color => Palette: Local (_ANY_))
Source: "Temp\Image.bmp"; DestDir: {tmp}; Flags: dontcopy;
;Библиотека для создания слайд-сшоу
Source: "Temp\IsXbb.dll"; DestDir: {tmp}; Flags: dontcopy;
;Файлы для слайд-сшоу (их может быть и больше)
Source: "Temp\1.jpg"; DestDir: {tmp}; Flags: dontcopy;
Source: "Temp\2.jpg"; DestDir: {tmp}; Flags: dontcopy;
Source: "Temp\3.jpg"; DestDir: {tmp}; Flags: dontcopy;
Source: "Temp\4.jpg"; DestDir: {tmp}; Flags: dontcopy;
Source: "Temp\5.jpg"; DestDir: {tmp}; Flags: dontcopy;
;Файлы проекта
Source: "Work\*.*"; DestDir: "{app}"; Flags: overwritereadonly ignoreversion recursesubdirs createallsubdirs;
[Code]
const
{"1,2,3,4" - в разных углах, "5" - по центру, "6" - растянуть изображения}
BACKGROUND=6;
TIMER=16;
function isxbb_AddImage(Image: PChar; Flags: Cardinal): Integer;
external 'isxbb_AddImage@files:isxbb.dll stdcall';
function isxbb_Init(hWnd: Integer): Integer;
external 'isxbb_Init@files:isxbb.dll stdcall';
function isxbb_StartTimer(Seconds: Integer; Flags: Cardinal): Integer;
external 'isxbb_StartTimer@files:isxbb.dll stdcall';
function isxbb_KillTimer(Flags: Cardinal): Integer;
external 'isxbb_KillTimer@files:isxbb.dll stdcall';
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';
var
Splash: TSetupForm;
procedure InitializeWizard();
var
BackgroundBitmapImage: TBitmapImage;
s: string;
Form: TSetupForm;
Width, Height: Integer;
ProgressBar: TNewProgressBar;
CancelButton: TButton;
StaticText: TNewStaticText;
BitmapImage: TBitmapImage;
BitmapImage1: TBitmapImage;
BitmapFileName: String;
i: Integer;
begin
WizardForm.Position:= poScreenCenter;
MainForm.BORDERSTYLE := bsNone;
Splash:= CreateCustomForm;
Splash.BorderStyle:= bsNone;
BitmapImage1:= TBitmapImage.Create(Splash);
With BitmapImage1 do
begin
AutoSize:= True;
Align:= alClient;
Left:= 0;
Top:= 0;
Stretch:= True;
Parent:= Splash;
end;
ExtractTemporaryFile('Splash.bmp');
BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\Splash.bmp');
Splash.Width:= BitmapImage1.Width;
Splash.Height:= BitmapImage1.Height;
Splash.Center;
Splash.Show;
BitmapImage1.Refresh;
Form:= CreateCustomForm();
try
with Form do
begin
ClientWidth:= ScaleX(380);
ClientHeight:= ScaleY(120);
BorderStyle:= bsDialog;
Left:= GetSystemMetrics(16) - ClientWidth - ScaleX(8);
Top:= GetSystemMetrics(17) - ClientHeight - ScaleY(8);
end;
BitmapFileName:= ExpandConstant('{tmp}\WizModernSmallImage.bmp');
ExtractTemporaryFile(ExtractFileName(BitmapFileName));
BitmapImage:= TBitmapImage.Create(Form);
BitmapImage.Left:= ScaleX(8);
BitmapImage.Top:= ScaleY(8);
BitmapImage.AutoSize:= True;
BitmapImage.Bitmap.LoadFromFile(BitmapFileName);
BitmapImage.Parent:= Form;
StaticText:= TNewStaticText.Create(Form);
StaticText.Top:= BitmapImage.Top;
StaticText.Left:= BitmapImage.Left + BitmapImage.Width + ScaleX(8)
{Надпись которая будет отображатся на странице поготовки}
StaticText.Caption := ''#10#13'"______" now preparing to install...';
StaticText.AutoSize:= True;
StaticText.Parent:= Form;
CancelButton:= TButton.Create(Form);
CancelButton.Parent:= Form;
CancelButton.Width:= ScaleX(75);
CancelButton.Height:= ScaleY(23);
CancelButton.Left:= Form.ClientWidth - ScaleX(75 + 10);
CancelButton.Top:= Form.ClientHeight - ScaleY(23 + 10);
CancelButton.Caption:= 'Cancel';
CancelButton.ModalResult:= mrCancel;
CancelButton.Cancel:= True;
Form.Caption:= 'Prepering...';
ProgressBar:= TNewProgressBar.Create(Form);
with ProgressBar do
begin
Height:= CancelButton.Height - ScaleY(8);
Width:= Form.Width - ScaleX(128);
Top:= CancelButton.Top;
Left:= BitmapImage.Left;
Parent:= Form;
Min:= 0;
Max:= 30;
Position:= 0;
end;
Form.ActiveControl:= CancelButton;
Form.Show();
for i:= 0 to 30 do
begin
ProgressBar.Position:= i;
Form.Repaint;
Sleep(400);
i:= i + 2;
end;
finally
Form.Free();
Splash.Close;
Width:= GetSystemMetrics(0);
Height:= GetSystemMetrics(1);
MainForm.Width:= width;
MainForm.Height:= height;
Width:= MainForm.ClientWidth;
Height:= MainForm.ClientHeight;
ExtractTemporaryFile('Image.bmp');
s:= ExpandConstant('{tmp}') + '\Image.bmp';
BackgroundBitmapImage:= TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Bitmap.LoadFromFile(s);
BackgroundBitmapImage.Left:= 0;
BackgroundBitmapImage.Top:= 0;
BackgroundBitmapImage.Width:= width;
BackgroundBitmapImage.Height:= height;
BackgroundBitmapImage.Parent:= MainForm;
BackgroundBitmapImage.Stretch:= True;
{Не забудте прописать здесь и ниже правильные имена и количество файлов для слайд-шоу!}
ExtractTemporaryFile('1.jpg');
ExtractTemporaryFile('2.jpg');
ExtractTemporaryFile('3.jpg');
ExtractTemporaryFile('4.jpg');
ExtractTemporaryFile('5.jpg');
MainForm.Visible := True;
end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssInstall
then
begin
isxbb_AddImage(ExpandConstant('{tmp}')+'\1.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\2.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\3.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\4.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\5.jpg',BACKGROUND or TIMER);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
{Указывается время отображения на экране каждого изображения}
isxbb_StartTimer(8,BACKGROUND)
end
else
If CurStep=ssPostInstall
then
isxbb_KillTimer(BACKGROUND);
end;
procedure CurPageChanged(CurPageID: Integer);
var
Width, Height: Integer;
begin
If CurPageID=wpInstalling
then
begin
{Здесь размер окна установки уменьшается, с него убирается всё лишнее и оно смещается в нижний правый угол экрана (не зависит от разрешения)}
WizardForm.CancelButton.BringToFront;
WizardForm.MainPanel.Visible:= False;
WizardForm.Bevel1.Visible:= False;
{Размер получемого окна установки}
Width:= ScaleX(395);
Height:= ScaleY(150);
WizardForm.Left:= GetSystemMetrics(16) - Width - ScaleX(5);
WizardForm.Top:= GetSystemMetrics(17) - Height - ScaleY(-50);
WizardForm.Width:= ScaleX(395);
WizardForm.Height:=ScaleY(150);
WizardForm.InnerNotebook.Left:= ScaleX(10);
WizardForm.InnerNotebook.Top:= ScaleY(10);
WizardForm.InnerNotebook.Width:= ScaleX(370);
WizardForm.StatusLabel.Left:= ScaleX(0);
WizardForm.StatusLabel.Top:= ScaleY(0);
WizardForm.StatusLabel.Width:= WizardForm.InnerNotebook.Width;
WizardForm.FileNameLabel.Left:= ScaleX(0);
WizardForm.FileNameLabel.Top:= ScaleY(20);
WizardForm.FileNameLabel.Width:= WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Top:= ScaleY(40);
WizardForm.ProgressGauge.Width:= WizardForm.InnerNotebook.Width;
WizardForm.CancelButton.Left:= ScaleX(154);
WizardForm.CancelButton.Top:= ScaleY(80);
end
if CurPageID=wpFinished
then
begin
{Окно установки принимает стандартный вид}
WizardForm.Width:=502;
WizardForm.Height:=392;
WizardForm.Position:=poScreenCenter;
end
end;
il NightW0lf
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
Предыдущая тема: ICONS