>>#define MyAppName "Samaan Systems" >>#define MyAppVerName "Samaan Systems" >>#define MyAppPublisher "Samaan Systems Ltd." >>#define MyAppURL "http://SamaanSystems.com" >>#define MyAppExeName "myprog.exe" >> >>[Setup] >>AppName={#MyAppName} >>AppVerName={#MyAppVerName} >>AppId=SSL1 >>AppPublisher={#MyAppPublisher} >>AppPublisherURL={#MyAppURL} >>AppSupportURL={#MyAppURL} >>AppUpdatesURL={#MyAppURL} >>DefaultDirName={pf}\{#MyAppName} >>AppVersion=1.0 >>DefaultGroupName={#MyAppVerName} >>Compression=lzma >>SolidCompression=true >>OutputBaseFilename={#MyAppName} setup >>CreateAppDir=no >>LicenseFile=readme.txt >>DisableProgramGroupPage=yes >> >>[Messages] >>BeveledLabel=© 2006 Samaan Systems Ltd. >> >>[Types] >>Name: workstation; Description: Workstation installation >>Name: shared; Description: Shared files installation >>Name: full; Description: Full installation >> >>[Components] >>Name: workstation; Description: Workstation files; Types: full workstation >>Name: shared; Description: Shared files; Types: full shared >> >>[Tasks] >>Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; components: workstation >>Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked; components: workstation >> >>[Files] >>;********************************************************************** >>; >>; Workstation component files >>; >>;********************************************************************** >>Source: myprog.exe; DestDir: {code:GetAppDir}; Flags: ignoreversion; Components: workstation >> >>;********************************************************************** >>; >>; shared component files >>; >>;********************************************************************** >>Source: readme.txt; DestDir: {code:GetDataDir}; Flags: ignoreversion; Components: shared >> >>[Icons] >>Name: {group}\{#MyAppName}; Filename: {code:GetAppDir}\MyProg.exe >>Name: {commondesktop}\{#MyAppName}; Filename: {code:GetAppDir}\MyProg.exe; Tasks: desktopicon; WorkingDir: {app}; IconIndex: 0 >> >>[Run] >>Filename: {app}\Myprog.exe; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent; Components: workstation >> >>[Code] >>var >> AppDirPage, DataDirPage: TInputDirWizardPage; >> >>procedure InitializeWizard; >>begin >> { Create the app directory page } >> AppDirPage := CreateInputDirPage( wpSelectComponents, >> 'Select Workstation Directory', 'Where should the workstation files be installed?', >> 'Setup will install the workstation files into the following folder.', >> False, 'New Folder'); >> AppDirPage.Add( 'To continue, click Next. If you would like to select a different location, click Browse'); >> >> { Create the data directory page } >> DataDirPage := CreateInputDirPage( wpSelectComponents, >> 'Select Shared Files Directory', 'Where should the shared files be installed?', >> 'Setup will install the shared files into the following folder.', >> False, 'New Folder'); >> DataDirPage.Add( 'To continue, click Next. If you would like to select a different location, click Browse'); >> >>end; >> >>procedure RegisterPreviousData( PreviousDataKey: Integer); >>begin >> { Save the DataDir setting so we can restore it next time } >> SetPreviousData( PreviousDataKey, 'AppDir', AppDirPage.Values[0]); >> SetPreviousData( PreviousDataKey, 'DataDir', DataDirPage.Values[0]); >>end; >> >>procedure CurPageChanged(curPageID: Integer); >> >>var SetupType: String; >> >>begin >> >> if CurPageID = AppDirPage.ID then >> begin >> SetupType:=WizardSetupType(False); >> >> case SetupType of >> 'full': AppDirPage.Values[0] := GetPreviousData('AppDir', ExpandConstant('{pf}') + '\Samaan Systems'); >> 'workstation': AppDirPage.Values[0] := GetPreviousData('AppDir', ExpandConstant('{pf}') + '\Samaan Systems'); >> end; >> end; >> >> if CurPageID = DataDirPage.ID then >> begin >> SetupType:=WizardSetupType(False); >> >> case SetupType of >> 'full': DataDirPage.Values[0] := GetPreviousData('DataDir', ExpandConstant('{pf}') + '\Samaan Systems\Data'); >> 'shared': DataDirPage.Values[0] := GetPreviousData('DataDir', ExpandConstant('{pf}') + '\Samaan Systems\Data'); >> end; >> end; >>end; >> >> >>function ShouldSkipPage( PageID: Integer): Boolean; >>begin >> { Skip the AppDir page if the shared component is not selected } >> if ( PageID = AppDirPage.ID) then >> Result := pos( 'workstation', WizardSelectedComponents( false)) = 0 >> >> { Skip the DataDir page if the shared component is not selected } >> if ( PageID = DataDirPage.ID) then >> Result := pos( 'shared', WizardSelectedComponents( false)) = 0 >> >>end; >> >> >>function UpdateReadyMemo( Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, >> MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String; >>var >> S: String; >>begin >> { Fill the 'Ready Memo' with the normal settings and the custom settings } >> S := ''; >> S := MemoComponentsInfo + NewLine + NewLine; >> >> { Workstation component is selected } >> if pos( 'workstation', WizardSelectedComponents( false)) > 0 then >> S := S + MemoDirInfo + appDirPage.Values[0] + ' (Workstation files)' + NewLine; >> >> { shared component is selected } >> if pos( 'shared', WizardSelectedComponents( false)) > 0 then >> S := S + DataDirPage.Values[0] + ' (Shared files)' + NewLine; >> >> Result := S; >>end; >> >>function GetDataDir( S: String): String; >>begin >> { Return the selected DataDir } >> Result := DataDirPage.Values[0]; >>end; >> >>function GetAppDir( Default: String): String; >>begin >> { Return the install dir } >> Result := AppDirPage.Values[0]; >>end; >> >>>>