RM报表的选项 注册表位置

HKCUSoftwareWHF SoftWareReport MachineRMReportFormRMDesignerForm

设计器-工具-选项的设置

 

HKCUSoftwareWHF SoftWare0Report MachineFormTRMEditorForm

文本编辑器窗口的,有个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;
原文地址:https://www.cnblogs.com/CodeGear/p/4918876.html