Delphi TRegistry的源码为何这样写?(50)

  • 主题发起人 主题发起人 delhpi
  • 开始时间 开始时间
D

delhpi

Unregistered / Unconfirmed
GUEST, unregistred user!
无意中打开VCLTRegistry 单元,发现IDE提示有错误,大致意思是 标识符声明重复了。看了一下,TRegistry 类有RestoreKey函数,但函数内部,又声明了一个局部RestoreKey变量。function TRegistry.RestoreKey(const Key, FileName: string): Boolean;var RestoreKey: HKEY;begin Result := False; RestoreKey := GetKey(Key); if RestoreKey <> 0 then try Result := RegRestoreKey(RestoreKey, PChar(FileName), 0) = ERROR_SUCCESS; finally RegCloseKey(RestoreKey); end;end;
 
我下面的代码和它相同,可以编译通过:function TForm1.Test: Boolean;var Test:Integer;begin Test:=100; result :=Test>20;end;----------我用的是D7
 
编译好像能通过,但2007有Error提示
 
Delphi2007可以执行下面代码,没有任何异常:procedure TForm1.Button1Click(Sender: TObject);begin if Test then caption:='aaa' else caption:='bbb';end;function TForm1.Test: Boolean;var Test:Integer;begin Test:=100; result :=Test>20;end;
 
不是编译通不过,也不是运行有异常。在ide里,D2007在var Test:Integer;的test下 有红色的波浪线,提示是 标识符重复。
 
在2007下,改变了许多编译配置,还是没发现你说的错误,呵呵,不管了,能编译通过就可以了,你说的那个可能是[DCC Warning]吧?不然应该编译通不过的。
 
好象老版本d会出错(我知道d5会错)我用的是d7
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
547
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部