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;
    红色部分是后来添加的,没想到这样就解决了内存泄漏,不知道有没有高手跟我说说原因。
  • 相关阅读:
    牛逼的博客地址
    动画的keyPath
    跳转到系统设置的各种配置
    UITextField只允许输入正数
    冒泡排序
    number类型的数组
    正则表达式
    C中常用的数学函数
    利用运行时,查看一个类的所有子类
    玉蟾宫(悬线法)
  • 原文地址:https://www.cnblogs.com/sonicit/p/1045531.html
Copyright © 2011-2022 走看看