Dephi H2077提示信息 赋给'xxx'的值从未使用过

看一下代码:

procedure TfraModuleCPCK.AutoCPRK;
begin  
     var TypeDJ:=0;
    if DeptID=0 then
       TypeDJ:=StrToInt(dm.GetSNPrefix('其他入库','ID'))
    else
       TypeDJ:=StrToInt(dm.GetSNPrefix('产品入库','ID'));

    var fq := TFDQuery.Create(nil);
    fq.Connection := Dm.FDConnection1;
    with fq do
    begin
        try            
                 ...
                FieldByName('单据类型').AsInteger := TypeDJ;
                ...
        finally
            Free;
        end;
    end;
end;

上面的代码提示:

[dcc32 提示] ufraModuleCPCK.pas(540): H2077 赋给'TypeDJ'的值从未使用过

 

为什么明明有被使用到还会有这个提示呢?

尝试修改为:

 with fq do
    begin
        try
            begin
                var TypeDJ :=0;
                if DeptID = 0 then
                    TypeDJ := StrToInt(Dm.GetSNPrefix('其他入库', 'ID'))
                else
                    TypeDJ := StrToInt(Dm.GetSNPrefix('产品入库', 'ID'));
...

问题依旧.

尝试提升声明到过程的begin之前,问题得已解决.

procedure TfraModuleCPCK.AutoCPRK;
var TypeDJ:=0;
begin  
...

原因:

不要在with这个BUG圣体中使用内联声明!

 

posted @ 2026-06-18 08:07  一曲轻扬  阅读(5)  评论(0)    收藏  举报