FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   **New Installer (https://fileforums.com/showthread.php?t=97259)

ShadowEagle 19-11-2015 12:15

Quote:

Originally Posted by rinaldo (Post 444697)
Code:

#define NeedSize "gamesizenumber"

Yes, this is standard. You misunderstood my question since 3 days.

In my ISS file this is included

Quote:

#define NeedSize "2048"
The Setup shows up this

http://ultraimg.com/images/ERROR.png

Any solution? Anyone other who can help me pls?

rinaldo 19-11-2015 13:02

Quote:

Originally Posted by ShadowEagle (Post 444699)
Yes, this is standard. You misunderstood my question since 3 days.

In my ISS file this is included



The Setup shows up this

http://ultraimg.com/images/ERROR.png

Any solution? Anyone other who can help me pls?


add a function type:
Code:

function NextButtonClick(CurPageID: Integer): Boolean;

ShadowEagle 19-11-2015 13:09

Quote:

Originally Posted by rinaldo (Post 444700)
add a function type:
Code:

function NextButtonClick(CurPageID: Integer): Boolean;

My gosh, I MEAN: I typed in 2048 and your installer is showing 7 MB. You see the difference???

rinaldo 19-11-2015 13:42

look at this script and you'll understand ;)

Code:


#define needsize 5000000

[Setup]             
AppName=Rina
DefaultDirName={pf}\Rina
DefaultGroupName=Rina
AppVerName=Rina

[Icons]
Name: "{userdesktop}\un"; Filename: "{app}\unins000.exe"; WorkingDir: "{app}"; Check: "CheckError";

[Files]
Source: "Files\unarc.dll"; DestDir: "{tmp}"; Flags: "dontcopy";
Source: "Files\ISDone.dll"; DestDir: "{tmp}"; Flags: "dontcopy";

[messages]
ButtonNext=< install >

[code*]
var
  ISDoneCancel:integer;
  ISDoneError:boolean;

const
  PCFonFLY=true;
  notPCFonFLY=false;

type
  TCallback = function (OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword;

function WrapCallback(callback:TCallback; paramcount:integer):longword;external 'wrapcallback@files:ISDone.dll stdcall delayload';
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';
function Exec2 (FileName, Param: PAnsiChar;Show:boolean):boolean; external 'Exec2@files:ISDone.dll stdcall delayload';
function FileSearchInit(RecursiveSubDir:boolean):boolean; external 'FileSearchInit@files:ISDone.dll stdcall delayload';
function ISDoneInit(RecordFileName:AnsiString; TimeType,Comp1,Comp2,Comp3:Cardinal; WinHandle, NeededMem:longint; callback:TCallback):boolean; external 'ISDoneInit@files:ISDone.dll stdcall';
function ISDoneStop:boolean; external 'ISDoneStop@files:ISDone.dll stdcall';
function SuspendProc:boolean; external 'SuspendProc@files:ISDone.dll stdcall';
function ResumeProc:boolean; external 'ResumeProc@files:ISDone.dll stdcall';

function ProgressCallback(OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword;
begin
  if OveralPct<=1000 then WizardForm.ProgressGauge.Position := OveralPct;
  WizardForm.Caption:=CurrentFile;
  Result := ISDoneCancel;
end;

procedure CancelButtonOnClick(Sender: TObject);
begin
  SuspendProc;
  if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then ISDoneCancel:=1;
  ResumeProc;
end;

function CheckError:boolean;
begin                       
  result:= not ISDoneError;
end;

Function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.2n', [Float]); StringChange(Result, ',', ',');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = ',')) and (Pos(',', Result) > 0) do
SetLength(Result, Length(Result)-1);
End;

function MbOrTb(Float: Extended): String;
begin
if Float < 1024 then Result:= NumToStr(Float)+' MB' else
if Float/1024 < 1024 then Result:= NumToStr(Float/1024)+' GB' else
Result:= NumToStr(Float/(1024*1024))+' TB';
end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
  FreeMB, TotalMB: Cardinal;
begin
  Result := True;
  if CurPageID = wpWelcome then begin
    GetSpaceOnDisk(ExtractFileDrive(WizardForm.DirEdit.Text), True, FreeMB, TotalMB);
    if FreeMB<{#needsize} then begin
      MsgBox('bla bla: '+MbOrTb({#needsize})+#13'bla bla bla '+MbOrTb(FreeMB)+' bla '+MbOrTb(TotalMB), mbError, mb_Ok);
      Result := False ;
    end;
  end;
end;

procedure InitializeWizard();
begin
WizardForm.ProgressGauge.Max:=1000;
end;

procedure CurStepChanged(CurStep: TSetupStep);
var ExecError:boolean;
begin
  case CurStep of
    ssInstall: begin
      WizardForm.CancelButton.OnClick := @CancelButtonOnClick;
      ISDoneCancel:=0; 
      ExtractTemporaryFile('unarc.dll');
      ISDoneError:=true;
      if ISDoneInit(ExpandConstant('{src}'), $F777, 0,0,0, MainForm.Handle, 512, @ProgressCallback) then begin
        repeat
          if not FileSearchInit(true) then break;
          if not ISArcExtract ( 0, 100, ExpandConstant('{src}\data1.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
          ISDoneError:=false;
        until true;
        ISDoneStop;
      end;
    end;
    ssPostInstall: begin
      if ISDoneError then begin
        WizardForm.ProgressGauge.Hide;
        WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusRollback);
        Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
      end;
    end;                           
  end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID=8) or (PageID=10) or (PageID=7) or (PageID=6) then Result:=true;
end;


ShadowEagle 19-11-2015 13:49

So i only have to add this line? (Sorry, but i`m no coder. You`ve to help me pls)

Quote:

function NextButtonClick(CurPageID: Integer): Boolean;

ShadowEagle 20-11-2015 01:36

Pls write what to do, i script which doesn`t show up needed space is useless for me :(

JRD! 20-11-2015 12:34

Quote:

Originally Posted by ShadowEagle (Post 444699)
Yes, this is standard. You misunderstood my question since 3 days.

In my ISS file this is included



The Setup shows up this

http://ultraimg.com/images/ERROR.png

Any solution? Anyone other who can help me pls?

Try this:

//ISPP
#define ExtraDiskSpaceRequired "1000000000" //Size of the game in Byte

[Setup]
ExtraDiskSpaceRequired="{#ExtraDiskSpaceRequired}"

rinaldo 20-11-2015 21:57

3 Attachment(s)
Quote:

Originally Posted by ShadowEagle (Post 444722)
Pls write what to do, i script which doesn`t show up needed space is useless for me :(

Mod:
a)Change WpWelcome to wpSelectDir
b)Replace code ShouldSkipPage with that under

1)
Code:

Procedure CurPageChanged(CurPageID: Integer);
Begin
if (CurPageID = wpSelectDir) then
begin
WizardForm.NextButton.Caption:='Install';
end;

2)
Code:

function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID=1) Or (PageID=8) or (PageID=10) or (PageID=7)  then Result:=true;
end;



Under the file of a change type (Disk space):

pakrat2k2 20-11-2015 23:42

^ rinaldo thanks for this BUT WHY do it in KB ? The norm for all other installers is either MB or GB, can you modify it again to use those values ?

rinaldo 21-11-2015 00:10

Quote:

Originally Posted by pakrat2k2 (Post 444738)
^ rinaldo thanks for this BUT WHY do it in KB ? The norm for all other installers is either MB or GB, can you modify it again to use those values ?

KB is only in the Popup Message, my script is in MB :)

ShadowEagle 21-11-2015 02:22

Pls can you modify the mod and only show "Required HDD Space" on left, replacing the old "Need Space..." text and on the right the music button, do you know what i mean?

rinaldo 21-11-2015 02:30

Quote:

Originally Posted by ShadowEagle (Post 444740)
Pls can you modify the mod and only show "Required HDD Space" on left, replacing the old "Need Space..." text and on the right the music button, do you know what i mean?



Code:

Space[2].Hide;
Space[3].Hide;
Space[4].Hide;
Space[5].SetBounds(30,228,100,15); //SX

to hide and leave only the RSpace, otherwise you will have to make do, I have already herringbone many things and many mod (I end up here) ;)

ShadowEagle 21-11-2015 03:22

If an error happens while installing the rolling back feature delete the whole folder what`s not so good for using this script as on update installer. That`s my last wish, tell me what to delete that the rolling back feature won`t delete the whole folder.

I`ve to edit this line

Quote:

DelTree(ExpandConstant('{app}'), True, True, True);
to

Quote:

//DelTree(ExpandConstant('{app}'), True, True, True);
,right?

Best regards

JRD! 21-11-2015 03:55

Quote:

Originally Posted by ShadowEagle (Post 444743)
If an error happens while installing the rolling back feature delete the whole folder what`s not so good for using this script as on update installer. That`s my last wish, tell me what to delete that the rolling back feature won`t delete the whole folder.

I`ve to edit this line



to



,right?

Best regards

Add your line here:

if (CurPageID = wpFinished) and ISDoneError then
begin
UnBtn.Hide;
CustomCancelBtn.Enabled:=False;
DelTree(ExpandConstant('{app}'), True, True, True);
end;

That answer your question?

ShadowEagle 21-11-2015 04:09

No, i want to disable the feature DelTree.


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

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