Go Back   FileForums > Game Backup > PC Games > PC Games - CD/DVD Conversions > Conversion Tutorials

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 07-05-2021, 12:24
Masquerade Masquerade is offline
Registered User
 
Join Date: Jan 2020
Location: Monte d'Or
Posts: 1,217
Thanks: 294
Thanked 1,404 Times in 637 Posts
Masquerade is on a distinguished road
Help with Progress Bar

Hello everyone, I am trying to add a progress bar to a script.

Code:
  Progress:= TNewProgressBar.Create(WizardForm);
  with Progress do 
  begin
  Parent := WizardForm;
  SetBounds(10, 150, 200, 0);
  Max:=1000;
  end;
Code:
function ProgressCallback(OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword;
begin
  if OveralPct <=1000 then Progress.Position := OveralPct;
  Result := ISDoneCancel;
end;
Code:
if CurPageID = wpInstalling then
  begin
  ExtractTemporaryFile('unarc.dll')
  Progress.Show;
  DesktopIconCheckBox.Enabled := false;
  WizardForm.DirEdit.Hide;
  WizardForm.DirBrowseButton.Hide;
  ISDoneCancel:= 0
  ISDoneError := true;
  if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, 0, 0, 0, MainForm.Handle, 512, @ProgressCallback) then begin
    ChangeLanguage('English')
    begin
      repeat
        if not ISArcExtract ( 0, 0, ExpandConstant('{src}\*.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), false) then break;
        ISDoneError := false;
      until true;
        ISDoneStop;
      end; 
    end;
  end;
These above code snippets all are the code for the progress bar

I'm not entirely sure why the progress bar isn't showing up during installation.

I click "Install" to trigger wpInstalling.
THe directory box and the browse button disappear and the desktop icon checkbox is frozen. However, the progress bar does not appear.

Why could this be? Thanks!
Reply With Quote
Sponsored Links
  #2  
Old 07-05-2021, 13:43
Cesar82's Avatar
Cesar82 Cesar82 is offline
Registered User
 
Join Date: May 2011
Location: Brazil
Posts: 1,074
Thanks: 1,814
Thanked 2,304 Times in 787 Posts
Cesar82 is on a distinguished road
Quote:
Originally Posted by Masquerade View Post
Hello everyone, I am trying to add a progress bar to a script.

Code:
  Progress:= TNewProgressBar.Create(WizardForm);
  with Progress do 
  begin
  Parent := WizardForm;
  SetBounds(10, 150, 200, 0);
  Max:=1000;
  end;
Code:
function ProgressCallback(OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword;
begin
  if OveralPct <=1000 then Progress.Position := OveralPct;
  Result := ISDoneCancel;
end;
Code:
if CurPageID = wpInstalling then
  begin
  ExtractTemporaryFile('unarc.dll')
  Progress.Show;
  DesktopIconCheckBox.Enabled := false;
  WizardForm.DirEdit.Hide;
  WizardForm.DirBrowseButton.Hide;
  ISDoneCancel:= 0
  ISDoneError := true;
  if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, 0, 0, 0, MainForm.Handle, 512, @ProgressCallback) then begin
    ChangeLanguage('English')
    begin
      repeat
        if not ISArcExtract ( 0, 0, ExpandConstant('{src}\*.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), false) then break;
        ISDoneError := false;
      until true;
        ISDoneStop;
      end; 
    end;
  end;
These above code snippets all are the code for the progress bar

I'm not entirely sure why the progress bar isn't showing up during installation.

I click "Install" to trigger wpInstalling.
THe directory box and the browse button disappear and the desktop icon checkbox is frozen. However, the progress bar does not appear.

Why could this be? Thanks!

Maybe it's because you set Parent = WizardForm.
If you are a native installer, the parent should be the wpInstalling page.

If you are an installer that uses the native interface, try setting the ProgressBar Parent to:

Code:
Parent: = WizardForm.ProgressGauge.Parent;
or 
Parent: = WizardForm.InstallingPage;
Reply With Quote
  #3  
Old 07-05-2021, 14:12
DiCaPrIo DiCaPrIo is offline
Registered User
 
Join Date: Apr 2017
Location: Don't Know
Posts: 48
Thanks: 90
Thanked 49 Times in 30 Posts
DiCaPrIo is on a distinguished road
Quote:
Originally Posted by Masquerade View Post
Hello everyone, I am trying to add a progress bar to a script.

Code:
  Progress:= TNewProgressBar.Create(WizardForm);
  with Progress do 
  begin
  Parent := WizardForm;
  SetBounds(10, 150, 200, 0);
  Max:=1000;
  end;
Code:
function ProgressCallback(OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword;
begin
  if OveralPct <=1000 then Progress.Position := OveralPct;
  Result := ISDoneCancel;
end;
Code:
if CurPageID = wpInstalling then
  begin
  ExtractTemporaryFile('unarc.dll')
  Progress.Show;
  DesktopIconCheckBox.Enabled := false;
  WizardForm.DirEdit.Hide;
  WizardForm.DirBrowseButton.Hide;
  ISDoneCancel:= 0
  ISDoneError := true;
  if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, 0, 0, 0, MainForm.Handle, 512, @ProgressCallback) then begin
    ChangeLanguage('English')
    begin
      repeat
        if not ISArcExtract ( 0, 0, ExpandConstant('{src}\*.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), false) then break;
        ISDoneError := false;
      until true;
        ISDoneStop;
      end; 
    end;
  end;
These above code snippets all are the code for the progress bar

I'm not entirely sure why the progress bar isn't showing up during installation.

I click "Install" to trigger wpInstalling.
THe directory box and the browse button disappear and the desktop icon checkbox is frozen. However, the progress bar does not appear.

Why could this be? Thanks!
because you didn't give height value SetBounds(10, 150, 200, 40);//(l,t,w,h)
Reply With Quote
The Following 2 Users Say Thank You to DiCaPrIo For This Useful Post:
Cesar82 (07-05-2021), Masquerade (08-05-2021)
  #4  
Old 09-05-2021, 06:10
Masquerade Masquerade is offline
Registered User
 
Join Date: Jan 2020
Location: Monte d'Or
Posts: 1,217
Thanks: 294
Thanked 1,404 Times in 637 Posts
Masquerade is on a distinguished road
Is there any way I can use ExtractTemporaryFile with the * wildcard?

Currently I have this:

Code:
[Files]
Source: Include\*; DestDir: {tmp}; Flags: dontcopy
However, how can I extract all of the files included above to {tmp} without manually specifiying everything (since I'm trying to desing the code so that anything in the Include folder will be extracted to {tmp})?
Reply With Quote
  #5  
Old 09-05-2021, 06:50
DiCaPrIo DiCaPrIo is offline
Registered User
 
Join Date: Apr 2017
Location: Don't Know
Posts: 48
Thanks: 90
Thanked 49 Times in 30 Posts
DiCaPrIo is on a distinguished road
Quote:
Originally Posted by Masquerade View Post
Is there any way I can use ExtractTemporaryFile with the * wildcard?

Currently I have this:

Code:
[Files]
Source: Include\*; DestDir: {tmp}; Flags: dontcopy
However, how can I extract all of the files included above to {tmp} without manually specifiying everything (since I'm trying to desing the code so that anything in the Include folder will be extracted to {tmp})?

HTML Code:
#define Resources "Files\*"

[Files]
Source: {#Resources}; DestDir: {tmp}; Flags: dontcopy

[Code]
function InitializeSetup:boolean;
begin
  #define FHandle
  #define FRst
  #define Mask Resources
  #sub ProcessFiles
  #define FileName FindGetFileName(FHandle)
  ExtractTemporaryFile('{#FileName}');
  #endsub
  #for {FHandle = FRst = FindFirst(Mask, 0); FRst; FRst = FindNext(FHandle)} ProcessFiles
  Result:=True;
end;

Last edited by DiCaPrIo; 09-05-2021 at 06:52.
Reply With Quote
The Following 2 Users Say Thank You to DiCaPrIo For This Useful Post:
El.Amigos (22-05-2021), Masquerade (09-05-2021)
  #6  
Old 09-05-2021, 10:50
Cesar82's Avatar
Cesar82 Cesar82 is offline
Registered User
 
Join Date: May 2011
Location: Brazil
Posts: 1,074
Thanks: 1,814
Thanked 2,304 Times in 787 Posts
Cesar82 is on a distinguished road
Quote:
Originally Posted by Masquerade View Post
Is there any way I can use ExtractTemporaryFile with the * wildcard?

Currently I have this:

Code:
[Files]
Source: Include\*; DestDir: {tmp}; Flags: dontcopy
However, how can I extract all of the files included above to {tmp} without manually specifiying everything (since I'm trying to desing the code so that anything in the Include folder will be extracted to {tmp})?
For not so old versions of Inno Setup you can use:
Code:
[Files]
Source: Include\*; DestDir: {tmp}; Flags: dontcopy

[ code]
function InitializeSetup(): Boolean;
begin
  ExtractTemporaryFiles('{tmp}\*.*');
  Result := True;
end;
If you use @files: in the path of any of the DLL functions they will be extracted automatically before the InitializeSetup function.
So I recommend you change to {tmp} in the DLL functions, or specify a destination other than {tmp} for them using the dontcopy flag.

Code:
function ISArcExtract(CurComponent: Cardinal; PctOfTotal:double; InName, OutPath, ExtractedPath: AnsiString; DeleteInFile: Boolean; Password, CfgFile, WorkPath: AnsiString; ExtractPCF: boolean ):boolean; external 'ISArcExtract@files:ISDone.dll stdcall delayload';

change to:

function ISArcExtract(CurComponent: Cardinal; PctOfTotal:double; InName, OutPath, ExtractedPath: AnsiString; DeleteInFile: Boolean; Password, CfgFile, WorkPath: AnsiString; ExtractPCF: boolean ):boolean; external 'ISArcExtract@{tmp}\ISDone.dll stdcall delayload';

Last edited by Cesar82; 09-05-2021 at 10:53.
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
INNO TROUBLESHOOT - Tutorials and Answers about INNO Setup REV0 Conversion Tutorials 129 21-05-2021 05:51
INNO TUTORIAL - Using Unicode and ANSI Versions of INNO Setup REV0 Conversion Tutorials 51 26-03-2015 06:57
Frequently Asked Questions Joe Forster/STA PC Games - Frequently Asked Questions 0 29-11-2005 09:48



All times are GMT -7. The time now is 06:12.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com