秋·风

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
在龙芯+深度 25社区版(龙芯新世界)Lazarus安装lazreport的lr_dialogdesign.lpk控件后Lazarus程序无法启动,在终端运行提示:

QQ_1765358933600

昨天暂时修复龙芯+深度 25Lazarus安装lazreport的lr_dialogdesign.lpk后Lazarus程序无法启动的Bug的处理方法虽然lazarus能正常运行,但TLRFormStorage功能不能使用。
今天修复方案保证lazarus运行正常,TLRFormStorage的功能也有了。
修复还是和lazarus/components/lazreport/source/addons/DialogControls/lrformstorage.pas这个单元有关。
修复步骤:
1、增加变量:oldAddInsCount:Integer,同时将lrFormStorageEditorForm: TlrFormStorageEditorForm加上缺少值nil;
2、注释procedure InitLRComp的lrFormStorageEditorForm:=TlrFormStorageEditorForm.Create(nil);这行
3、在lrBMP_LRFormStorage := TbitMap.Create;这行添加一行:oldAddInsCount:=frAddInsCount;
implementation
 
uses LResources, lrFormStorageEditor, Controls, typinfo, FileUtil, LR_Const,
  LazUtilsStrConsts;
 
var
  oldfrAddInsCount:Integer;
  lrBMP_LRFormStorage:TBitmap = nil;
  lrFormStorageEditorForm: TlrFormStorageEditorForm=nil;
 
procedure InitLRComp;
begin
  //lrFormStorageEditorForm:=TlrFormStorageEditorForm.Create(nil);
  if not assigned(lrBMP_LRFormStorage) then
  begin
    oldfrAddInsCount:=frAddInsCount;
    lrBMP_LRFormStorage := TbitMap.Create;
    lrBMP_LRFormStorage.LoadFromResourceName(HInstance, 'TLRFormStorage');
    frRegisterObject(TLRFormStorage, lrBMP_LRFormStorage, 'TLRFormStorage', nil, otlUIControl, nil);
  end;
end;
 
{ TLRFormStorage }

 4、在constructor TLRFormStorage.Create(AOwnerPage: TfrPage);添加下面的红色代码

constructor TLRFormStorage.Create(AOwnerPage: TfrPage);
begin
  inherited Create(AOwnerPage);

  BaseName := 'lrFormStorage';
  FDesignOptions:=FDesignOptions + [doUndoDisable];
  FStoredProperties:=TStringList.Create;
  if lrFormStorageEditorForm=nil then
  begin
    lrFormStorageEditorForm:=TlrFormStorageEditorForm.Create(nil);
    frAddIns[oldfrAddInsCount].EditorForm := lrFormStorageEditorForm;
  end;
end;

QQ_1765499747239

 QQ_1765499699120

  

最后重新编译安装,TLRFormStorage功能就正常了:

QQ_1765415244780

 

posted on 2025-12-11 09:08  秋·风  阅读(23)  评论(0)    收藏  举报