zoukankan      html  css  js  c++  java
  • 使用RemObject遇到的问题

    在服务函数中用Var用参数关键字时,比如
    function TEMISLogic.UpdateMenu(var OldFields: TEMISFields): Boolean;
    begin
      Result :
    = False;
      try
        Result :
    = FEMISS.UpdateMenu(OldFields);
      except
        on E : Exception 
    do
        
    begin
          FEMISCommon.ErrorDlg(e.Message);
          Exit;
        
    end;
      
    end;
    end;

    参数中TEMISFields为RemObject的Array类型,程序运行没有任何问题一切OK,但就是有内存泄漏,一直找原因就是找不到,后来突发奇想,再添一个变量代码如下
    function TEMISLogic.UpdateMenu(var OldFields: TEMISFields): Boolean;
    var
      Fields: TEMISFields;
    begin
      Result :
    = False;
      try
        Fields := OldFields;

        Result :
    = FEMISS.UpdateMenu(Fields);
        FreeAndNil(Fields);
      except
        on E : Exception 
    do
        
    begin
          FEMISCommon.ErrorDlg(e.Message);
          Exit;
        
    end;
      
    end;
    end;
    红色部分是后来添加的,没想到这样就解决了内存泄漏,不知道有没有高手跟我说说原因。
  • 相关阅读:
    初识数据库与SQL语句
    初始面向对象
    集合与深浅copy
    函数进阶
    函数操作
    文件操作
    生成器与列表生成式
    函数名的本质,闭包和迭代
    小数据库
    DAY 5 字典
  • 原文地址:https://www.cnblogs.com/sonicit/p/1045531.html
Copyright © 2011-2022 走看看