Delphi dcc32提示H2077赋值给';objParam';从未使用过

Delphi dcc32提示H2077赋值给';objParam';从未使用过,delphi,Delphi,构建应用程序(下面的代码)时,将显示提示: H2077分配给objParam的值从未使用过 如何解决此提示?它是否适用于我的情况 function TESPGenerateParamList.RandomizationTimeConfiguration(SRandomizationTimeNode: string; eConfigType: string): Boolean; var objParam: Param; sFirstNode : string; nStartPos,nE

构建应用程序(下面的代码)时,将显示提示:

H2077分配给objParam的值从未使用过

如何解决此提示?它是否适用于我的情况

function TESPGenerateParamList.RandomizationTimeConfiguration(SRandomizationTimeNode: string; eConfigType: string): Boolean;
var
  objParam: Param;
  sFirstNode : string;
  nStartPos,nEndPos : word;
begin
  try
    try
      objParam := ParamSchedulerRandomizationTime.Create;
      if eConfigType = 'SETPARAM' then
      begin
        ParamSchedulerRandomizationTime(objParam).FrameType := Set_Param;

        //TIMEOUT Node
        sFirstNode := '';
        if SearchNode(rsMinutes,SRandomizationTimeNode,sFirstNode,nStartPos,nEndPos,false) then
        begin
          ParamSchedulerRandomizationTime(objParam).SetParam(0, strtoint(trim(sFirstNode)));
        end;
      end
      else if eConfigType = 'GETPARAM' then
      begin
        ParamSchedulerRandomizationTime(objParam).FrameType := Get_Param;
        ParamSchedulerRandomizationTime(objParam).GetParam(0);
      end;
      slConfigurationList.AddObject(objParam.ClassName, objParam);
      result := true;
    except
      on E: Exception do
      begin
        LogErrorMessage('uTESPGenerateParamList-->RandomizationTimeConfiguration' + E.Message);
        result := false;
        raise;
      end;
    end;
  finally
    objParam := nil;  //(for here it give hint)
  end;
end;

编译器是绝对正确的。在赋值之后,不引用变量。在所有情况下发生的下一件事是函数终止

要解析提示,请完全删除赋值语句。然后您也可以删除周围的
try
-
finally
块,因为
finally
部分中没有发生任何事情


但是首先假定赋值语句是处理引用对象的正确方法。如果
Param
是类类型而不是接口,则可能不是。在这种情况下,保留
try
-
finally
块,但将赋值替换为
Param.Free
,就像您在几十个其他Delphi示例中看到的那样。然后,将初始的
objParam
赋值上移两行,使其在进入第一个
try
部分之前发生。

是否需要释放它,而不是将其值设置为nil?如果它是类,我将编写什么代码来释放objParam使用:objParam.free;很遗憾听到这个消息,@Chetan。请发一个新问题。评论是没有好处的。