这两段代码得区别???(50)

  • 主题发起人 主题发起人 qwert8008
  • 开始时间 开始时间
Q

qwert8008

Unregistered / Unconfirmed
GUEST, unregistred user!
前一段代码里没有 Reg.CloseKey;后一段代码里为什么有 Reg.CloseKey;能不能解释一下function TForm1.readRege(strKey: string): integer;var reg: TRegistry;begin reg := TRegistry.Create; try reg.RootKey := HKEY_LOCAL_MACHINE; if reg.OpenKey('SOFTWARE/Microsoft/Internet Explorer/ActiveX Compatibility/{'+strKey+'}', false) then result := reg.ReadInteger('Compatibility Flags') else result := 0; finally reg.Free; end;end;procedure TForm1.writeRege(strKey: string; intValue: integer);var reg: TRegistry;begin reg := TRegistry.Create; try reg.RootKey := HKEY_LOCAL_MACHINE; if reg.OpenKey('SOFTWARE/Microsoft/Internet Explorer/ActiveX Compatibility/{'+strKey+'}', true) then begin Reg.WriteInteger('Compatibility Flags',intValue); Reg.CloseKey; end; finally reg.Free; end;end;
 
因为他第一段代码忘写了
 
Create <-> FreeOpenKey <-> CloseKey
 
后一种写法更规范,第一种写法问题也不大,因为 Free 时会 CloseKey 的,但如果出错就不一定了,所以还是加上 Reg.CloseKey; 比较好。
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
545
import
I
I
回复
0
查看
769
import
I
I
回复
0
查看
558
import
I
I
回复
0
查看
435
import
I
后退
顶部