HKCU\Software\WHF SoftWare\Report Machine\RMReport\Form\RMDesignerForm\
设计器-工具-选项的设置
HKCU\Software\WHF SoftWare0\Report Machine\Form\TRMEditorForm
文本编辑器窗口的,有个WordWrap自动换行的设置。
那个设置窗口,点击确定后,不会立即写注册表。设计创建关闭时,才会写注册表。
unit RM_Designer; const rsGridShow = 'GridShow'; rsGridAlign = 'GridAlign'; rsGridSize = 'GridSize'; rsUnits = 'Units'; rsEdit = 'EditAfterInsert'; rsBandTitles = 'BandTitles'; rsAutoOpenLastFile = 'AutoOpenLastFile'; rsWorkSpaceColor = 'WorkSpaceColor'; rsInspFormColor = 'InspFormColor'; rsLocalizedPropertyName = 'LocalizedPropertyName'; rsShowDropDownField = 'ShowDropDownField'; rsLanguage = 'Language';
procedure TRMDesignerForm.SaveIni; var Ini: TRegIniFile; Nm: string; i: Integer; begin Ini := TRegIniFile.Create(RMRegRootKey + '\RMReport'); try Nm := rsForm + Name; Ini.WriteString(Nm, rsLanguage, RM_CurLanguage); Ini.WriteBool(Nm, rsLocalizedPropertyName, RMLocalizedPropertyNames); //这样写的Boolean值,注册表里 数据类型 字符串,有点蛋疼。 Ini.WriteBool(Nm, rsAutoOpenLastFile, AutoOpenLastFile); Ini.WriteBool(Nm, rsGridShow, ShowGrid); Ini.WriteBool(Nm, rsGridAlign, GridAlign); Ini.WriteInteger(Nm, rsGridSize, GridSize); Ini.WriteInteger(Nm, rsUnits, Word(RMUnits)); Ini.WriteBool(Nm, rsEdit, FEditAfterInsert); Ini.WriteBool(Nm, rsBandTitles, RM_Class.RMShowBandTitles); Ini.WriteBool(Nm, rsShowDropDownField, RM_Class.RMShowDropDownField); Ini.WriteInteger(rsForm + FInspForm.ClassName, 'SplitPos', FInspForm.SplitterPos); Ini.WriteInteger(rsForm + FInspForm.ClassName, 'SplitPos1', FInspForm.SplitterPos1); Ini.WriteBool(Nm, rsUseTableName, UseTableName); Ini.WriteInteger(Nm, rsWorkSpaceColor, WorkSpaceColor); Ini.WriteInteger(Nm, rsInspFormColor, InspFormColor); if not IsPreviewDesign then begin Ini.WriteInteger(rsForm + FFieldForm.ClassName, 'SplitPos', FFieldForm.SplitterPos); Ini.EraseSection(rsOpenFiles); for i := 1 to FOpenFiles.Count do Ini.WriteString(rsOpenFiles, 'File' + IntToStr(i), FOpenFiles[i - 1]); end; finally Ini.Free; end; RMSaveToolbars('\RMReport', [ToolbarStandard]); RMSaveToolWinPosition('\RMReport', FInspForm); RMSaveFormPosition('\RMReport', Self); if not IsPreviewDesign then begin RMSaveToolWinPosition('\RMReport', FFieldForm); end; end;
procedure TRMDesignerForm.FormDestroy(Sender: TObject); begin FBusy := True; FInspBusy := True; FCurPageEditor.Editor_BeforeFormDestroy; ClearUndoBuffer; ClearRedoBuffer; if FInspForm <> nil then begin FInspForm.RestorePos; SaveIni;//这里 end; FreeAndNil(FEditorForm); FreeAndNil(FFindReplaceForm); FreeAndNil(FInspForm); FreeAndNil(FFieldForm); FreeAndNil(FOpenFiles); FreeAndNil(FCurPageEditor); end;
procedure TRegIniFile.WriteBool(const Section, Ident: string; Value: Boolean); const Values: array[Boolean] of string = ('0', '1'); var Key, OldKey: HKEY; begin CreateKey(Section); Key := GetKey(Section); if Key <> 0 then try OldKey := CurrentKey; SetCurrentKey(Key); try inherited WriteString(Ident, Values[Value]);//这里是字符串 finally SetCurrentKey(OldKey); end; finally RegCloseKey(Key); end; end;