2017-02-21 53 views
0

在構建應用程序(下面的代碼)將顯示一個提示「objParam」 H2077值:分配給objParamdcc32提示分配到從未使用過

H2077價值從來沒有使用過

如何解決這個提示?它適用於我的情況嗎?

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; 
+0

您是否需要釋放它而不是將其值設置爲零? –

+0

我寫了什麼代碼免費objparam –

+0

如果它是一個類的使用: objParam.free; – Fritzw

回答

0

編譯器是絕對正確的。在分配後您不會引用該變量。所有情況下發生的下一件事是該函數終止。

要解決該提示,請完全刪除賦值語句。然後,您可以刪除周圍的try - finally區塊,因爲finally部分中沒有任何反應。

但是假設賦值語句是首先處理被引用對象的正確方法。這可能不是,如果Param是類類型而不是接口。在這種情況下,請保留try - finally塊,但將作業替換爲Param.Free,就像您在許多其他Delphi示例中肯定看到的一樣。然後,將初始objParam分配給上移兩行,因此它出現在之前您輸入第一個try部分。

+0

對不起,@Chetan。請發佈一個新問題。評論對此沒有好處。 –