Rev 63077 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
[Code]varNoAdminPage: TOutputMsgWizardPage;SelectOptionsPage: TInputOptionWizardPage;MDISDIPage: TInputOptionWizardPage;HelpStylePage: TInputOptionWizardPage;InternetPage: TInputOptionWizardPage;INIFilename: String;function IsAdmin: boolean;beginResult := IsAdminLoggedOn or IsPowerUserLoggedOn;end;function NonAdmin: boolean;beginResult := not IsAdmin;end;procedure InitializeWizard;varoption : String;index : Integer;beginNoAdminPage := CreateOutputMsgPage(wpWelcome, SetupMessage(msgInformationTitle),CustomMessage('adminprivilegesrequired'), CustomMessage('adminexplanation'));SelectOptionsPage := CreateInputOptionPage(wpSelectComponents,CustomMessage('startupt'), CustomMessage('startupq'),CustomMessage('startupi'), True, False);SelectOptionsPage.Add(CustomMessage('startup0'));SelectOptionsPage.Add(CustomMessage('startup1'));SelectOptionsPage.SelectedValueIndex := 1;MDISDIPage := CreateInputOptionPage(SelectOptionsPage.ID,CustomMessage('MDIt'), CustomMessage('MDIq'),CustomMessage('MDIi'), True, False);MDISDIPage.Add(CustomMessage('MDI0'));MDISDIPage.Add(CustomMessage('MDI1'));HelpStylePage := CreateInputOptionPage(MDISDIPage.ID,CustomMessage('HelpStylet'), CustomMessage('HelpStyleq'),CustomMessage('HelpStylei'), True, False);HelpStylePage.Add(CustomMessage('HelpStyle0'));HelpStylePage.Add(CustomMessage('HelpStyle1'));InternetPage := CreateInputOptionPage(HelpStylePage.ID,CustomMessage('Internett'), CustomMessage('Internetq'),CustomMessage('Interneti'), True, False);InternetPage.Add(CustomMessage('Internet0'));InternetPage.Add(CustomMessage('Internet1'));INIFilename := ExpandConstant('{param:LOADINF}');if INIFilename <> '' then INIFilename := ExpandFilename(INIFilename);{ From highest to lowest, priority is:LOADINF valuePreviousData valueDefault from build }option := GetPreviousData('MDISDI', '');if INIFilename <> '' thenoption := GetIniString('R', 'MDISDI', option, INIFilename);case option of'MDI': index := 0;'SDI': index := 1;elseindex := @MDISDI@;end;MDISDIPage.SelectedValueIndex := index;option := GetPreviousData('HelpStyle', '');if INIFilename <> '' thenoption := GetIniString('R', 'HelpStyle', option, INIFilename);case option of'plain': index := 0;'CHM': index := 1;'HTML': index := 1;elseindex := @HelpStyle@;end;HelpStylePage.SelectedValueIndex := index;option := GetPreviousData('Internet', '');if INIFilename <> '' thenoption := GetIniString('R', 'Internet', option, INIFilename);case option of'Standard': index := 0;'Internet2': index := 1;elseindex := @Internet@;end;InternetPage.SelectedValueIndex := index;{ Get the save name now, because the current dir might change }INIFilename := ExpandConstant('{param:SAVEINF}');if INIFilename <> '' then INIFilename := ExpandFilename(INIFilename);end;procedure RegisterPreviousData(PreviousDataKey: Integer);varMDISDI: String;HelpStyle: String;Internet: String;begin{ Store the settings so we can restore them next time }case MDISDIPage.SelectedValueIndex of0: MDISDI := 'MDI';1: MDISDI := 'SDI';end;SetPreviousData(PreviousDataKey, 'MDISDI', MDISDI);if INIFilename <> '' thenSetIniString('R', 'MDISDI', MDISDI, INIFilename);case HelpStylePage.SelectedValueIndex of0: HelpStyle := 'plain';1: HelpStyle := 'HTML';end;SetPreviousData(PreviousDataKey, 'HelpStyle', HelpStyle);if INIFilename <> '' thenSetIniString('R', 'HelpStyle', HelpStyle, INIFilename);case InternetPage.SelectedValueIndex of0: Internet := 'Standard';1: Internet := 'Internet2';end;SetPreviousData(PreviousDataKey, 'Internet', Internet);if INIFilename <> '' thenSetIniString('R', 'Internet', Internet, INIFilename);end;function SetCommentMarker(var lines: TArrayOfString; option: String; active: boolean) : boolean;vari : integer;old : string;beginResult := false;for i := 0 to pred(GetArrayLength(lines)) doif pos(option, lines[i]) > 0 thenbeginold := lines[i];if active thenlines[i][1] := ' 'elselines[i][1] := '#';if old <> lines[i] thenResult := true;exit;end;end;procedure EditOptions();varlines : TArrayOfString;filename : String;changed : boolean;beginchanged := false;filename := ExpandConstant(CurrentFilename);LoadStringsFromFile(filename, lines);if SetCommentMarker(lines, 'MDI = yes', MDISDIPage.SelectedValueIndex = 0) then changed := true;if SetCommentMarker(lines, 'MDI = no', MDISDIPage.SelectedValueIndex = 1) then changed := true;if SetCommentMarker(lines, 'options(help_type="text"', HelpStylePage.SelectedValueIndex = 0) then changed := true;if SetCommentMarker(lines, 'options(help_type="html"', HelpStylePage.SelectedValueIndex = 1) then changed := true;if changed thenSaveStringsToFile(filename, lines, False);end;function CmdParms(Param:String): String;beginResult := '';if InternetPage.SelectedValueIndex = 1 thenResult := '--internet2';end;function ShouldSkipPage(PageID: Integer): boolean;beginif PageID = NoAdminPage.ID then Result := IsAdminelse if (PageID = MDISDIPage.ID) or (PageID = HelpStylePage.ID) or (PageID = InternetPage.ID) thenResult := SelectOptionsPage.SelectedValueIndex = 1else Result := false;end;function UserPF(Param:String): String;beginResult := ExpandConstant('{pf}');if (not IsAdmin) thenbegintryResult := ExpandConstant('{userdocs}');except// Do nothing, user doesn't have a My Documents folderend;end;end;