Скрипты Inno Setup. Помощь и советы [часть 5]
-
sergey3695
Re: Скрипты Inno Setup. Помощь и советы [часть 5]
Twoface, Вот держи в папку BASS_Files добавь Music.mp3...
-
Johny777
Re: Скрипты Inno Setup. Помощь и советы [часть 5]
подскажите пожалуйста как в этой процедуре обрабатываемой при изменении лист бокса получить текст выбранного айтема
procedure FileListOnClick(Sender: TObject);
begin
// From_Edit.Text := FileList.Items(Sender).Text;
end;
код целиком:
Код:
procedure FileListOnClick(Sender: TObject);
begin
// From_Edit.Text := FileList.Items(Sender).Text;
end;
код целиком:
читать дальше »
Код:
Код: Выделить всё
[Setup]
AppName=Test
AppVersion=1.0
DefaultDirName={pf}\Test
DefaultGroupName=Test
AllowNoIcons=yes
OutputDir=.
OutputBaseFilename=setup
Compression=lzma
SolidCompression=true
Uninstallable=false
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[ Code]
var
Page: TInputDirWizardPage;
Extract_Button: TButton;
From_Edit: TNewEdit;
From_Button: TNewButton;
To_Edit: TNewEdit;
To_Button: TNewButton;
FileList: TNewListBox;
n: integer;
function GetFileCount(dir: string): Integer;
var
FindFiles: TFindRec;
begin
Result := 0;
if FindFirst(dir + '\*.exe', FindFiles) then
begin
repeat
if FindFiles.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then Result := Result + 1;
until not FindNext(FindFiles) or (Result > 1);
FindClose(FindFiles);
end;
end;
procedure GetAllFiles( Path: string; Lb: TNewListBox );
var
sRec: TFindRec;
isFound: boolean;
begin
isFound := FindFirst(Path +'\*.exe*',sRec);
while isFound do
begin
if (sRec.Name '.') and (sRec.Name '..') then
begin
if (sRec.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY then
GetAllFiles(Path + '\' + sRec.Name, Lb);
Lb.Items.Add(Path + sRec.Name);
n := FileList.Items.Count;
end;
Application.ProcessMessages;
isFound := FindNext(sRec);
end;
FindClose(sRec);
end;
procedure FileListOnClick(Sender: TObject);
begin
// From_Edit.Text := FileList.Items(Sender).Text;
end;
procedure BrowseButtonOnClick(Sender: TObject);
var
Dir: String;
MyExit: TSetupForm;
begin
case TButton(Sender) of
From_Button: if BrowseForFolder(SetupMessage(msgBrowseDialogLabel), Dir, False) then
begin
// From_Edit.Text := Dir;
if GetFileCount(Dir) > 1 then
begin
MyExit := CreateCustomForm();
with MyExit do
begin
Position := poScreenCenter;
ClientWidth := ScaleX(400);
ClientHeight := ScaleY(300);
Caption := 'Уточнитель';
Color := clWindow;
with TButton.Create(nil) do
begin
Parent := MyExit;
Caption := ExpandConstant(SetupMessage(msgButtonNo));
SetBounds(ScaleX(18), ScaleY(220), ScaleX(71), ScaleY(25));
Cursor := crHand;
ModalResult:= mrNo;
end;
with TButton.Create(nil) do
begin
Caption := ExpandConstant(SetupMessage(msgButtonYes));
Parent := MyExit;
SetBounds(ScaleX(110), ScaleY(220), ScaleX(71), ScaleY(25));
Cursor := crHand;
ModalResult := mrYes;
end;
FileList := TNewListBox.Create(nil);
with FileList do
begin
Parent := MyExit;
SetBounds(ScaleX(0),ScaleY(0),ScaleX(400),ScaleY(200));
ItemHeight := 13;
ItemIndex := n;
OnClick := @FileListOnClick;
end;
GetAllFiles(Dir, FileList );
case ShowModal() of
mrNo : MsgBox( '', mbError, MB_OK);
mrYes : MsgBox( '', mbError, MB_OK);
end;
end;
end;
end;
To_Button: if BrowseForFolder(SetupMessage(msgBrowseDialogLabel), Dir, True) then To_Edit.Text := Dir;
end;
end;
procedure Edits_OnChange(Sender: TObject);
begin
Extract_Button.Enabled := (From_Edit.Text '') and (To_Edit.Text '');
end;
procedure Extract(Sender: TObject);
var
ErrorCode: Integer;
begin
Exec(From_Edit.Text, '-y -o"' + To_Edit.Text + '"', From_Edit.Text, SW_HIDE, ewWaitUntilTerminated, ErrorCode);
end;
procedure InitializeWizard();
begin
with WizardForm do
begin
Bevel.Hide;
OuterNotebook.Hide;
end;
From_Edit := TNewEdit.Create(WizardForm);
with From_Edit do
begin
Parent := WizardForm;
Left := ScaleX(64);
Top := ScaleY(168);
Width := ScaleX(313);
Height := ScaleY(21);
OnChange := @Edits_OnChange;
end;
From_Button := TNewButton.Create(WizardForm);
with From_Button do
begin
Caption := 'Обзор';
Parent := WizardForm;
Left := ScaleX(400);
Top := ScaleY(168);
Width := ScaleX(75);
Height := ScaleY(25);
OnClick := @BrowseButtonOnClick;
end;
To_Edit := TNewEdit.Create(WizardForm);
with To_Edit do
begin
Parent := WizardForm;
Left := ScaleX(64);
Top := ScaleY(208);
Width := ScaleX(313);
Height := ScaleY(21);
OnChange := @Edits_OnChange;
end;
To_Button := TNewButton.Create(WizardForm);
with To_Button do
begin
Caption := 'Обзор';
Parent := WizardForm;
Left := ScaleX(400);
Top := ScaleY(208);
Width := ScaleX(75);
Height := ScaleY(25);
OnClick := @BrowseButtonOnClick;
end;
Extract_Button:=TButton.Create(WizardForm);
with Extract_Button do
begin
Parent:=WizardForm;
SetBounds(WizardForm.Width - ScaleX(300),WizardForm.Height - ScaleX(65),ScaleX(75),ScaleY(25));
Caption:='Извлечь';
Enabled := False;
OnClick:=@Extract;
end;
end;-
Ivan_009
Re: Скрипты Inno Setup. Помощь и советы [часть 5]
Как сделать такие края в инсталляторе без ботвы..... 

-
nik1967
Re: Скрипты Inno Setup. Помощь и советы [часть 5]
Ivan_009,
Спасибо за то что постарался помочь, век помнить буду. Всё, я сам сделал, правда голова чуть не лопнула но сделал.
Спасибо за то что постарался помочь, век помнить буду. Всё, я сам сделал, правда голова чуть не лопнула но сделал.
-
Ivan_009
-
nik1967
Re: Скрипты Inno Setup. Помощь и советы [часть 5]
Ivan_009,
Код:
Только пропадает прозрачность.
пример
Код:
Код: Выделить всё
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[ Code]
const
Radius = 55; // Тут сами экспериментируйте
function CreateRoundRectRgn(p1, p2, p3, p4, p5, p6: Integer): THandle; external 'CreateRoundRectRgn@gdi32 stdcall';
function SetWindowRgn(hWnd: HWND; hRgn: THandle; bRedraw: Boolean): Integer; external 'SetWindowRgn@user32 stdcall';
procedure ShapeForm(aForm: TForm; edgeSize: integer);
var
FormRegion:LongWord;
begin
FormRegion:=CreateRoundRectRgn(0,0,aForm.Width,aForm.Height,edgeSize,edgeSize);
SetWindowRgn(aForm.Handle,FormRegion,True);
end;
procedure InitializeWizard();
begin
ShapeForm(WizardForm, radius);
end;Только пропадает прозрачность.
-
Mafioza
Re: Скрипты Inno Setup. Помощь и советы [часть 5]
как сделать , окно подготовки к установке и его точный прогресс , хотя бы как в NSIS ?заранее спасибо !
-
Ivan_009
Re: Скрипты Inno Setup. Помощь и советы [часть 5]
Mafioza, ты про это что ли... 
Johny777, как такое зделать незнаешь случаем...

Johny777, как такое зделать незнаешь случаем...

-
Johny777
Re: Скрипты Inno Setup. Помощь и советы [часть 5]
Ivan_009, Mafioza,
блин чуваки
харэ мудрить
я знаю как такое задать и поделюсь, но вы поймите простую вещь
у меня в инсталле при запуске извлекаются 75 картинок
на них отведено 74 деления прогрессбара на форме которая создаётся в начале InitializeWizard;
а в конце разрушается
сама процедура InitializeWizard; у меня длиной в 4200 строк
и все остальные деления (позиции прогреса) раскиданы на примерно равных интервалах по ней (25 делений)
те я не мог не отобразить запуск такого тяжёлого инсталла
если у вас сразу запускается, то вы и форму не особо увидите. Она мелькнёт и всё
а теперь подумайте
вот вы хотите вешать необдуманно рюшки которые - понты
Я тоже фанат всяких наворотов но скажу честно. Если бы мой инсталл запускался за пару секунд я бы форму даже не создавал
в общем призываю ещё раз пересмотреть желания
если вам нужны кастомные тормоза, то дело ваше. Выдеру пример у себя из кода
Прочитали?
Теперь ещё раз скажите нужно или нет
если не нужно то поудаляйте свои посты
если нужно оставьте. Заменю это сообщение на код
блин чуваки
харэ мудрить
я знаю как такое задать и поделюсь, но вы поймите простую вещь
у меня в инсталле при запуске извлекаются 75 картинок
на них отведено 74 деления прогрессбара на форме которая создаётся в начале InitializeWizard;
а в конце разрушается
сама процедура InitializeWizard; у меня длиной в 4200 строк
и все остальные деления (позиции прогреса) раскиданы на примерно равных интервалах по ней (25 делений)
те я не мог не отобразить запуск такого тяжёлого инсталла
если у вас сразу запускается, то вы и форму не особо увидите. Она мелькнёт и всё
а теперь подумайте
вот вы хотите вешать необдуманно рюшки которые - понты
Я тоже фанат всяких наворотов но скажу честно. Если бы мой инсталл запускался за пару секунд я бы форму даже не создавал
в общем призываю ещё раз пересмотреть желания
если вам нужны кастомные тормоза, то дело ваше. Выдеру пример у себя из кода
Прочитали?
Теперь ещё раз скажите нужно или нет
если не нужно то поудаляйте свои посты
если нужно оставьте. Заменю это сообщение на код
-
Fifth Intellect
Re: Скрипты Inno Setup. Помощь и советы [часть 5]
Как текструировать DirEdit и GroupEdit через ботву....Заранее спасибо.