本代码有删减,只取了些表达要问的意思var
   Reg:TRegistry;
 begin
  reg := TRegistry.Create;
  try
    reg.RootKey := HKEY_CURRENT_USER;
    if Reg.OpenKey('\Software\Cyberhood',True) then
    begin
    Reg.WriteTime('time1',DateTimePicker1.Time);
    Reg.WriteTime('time2',strtotime('00:00'));  //因为时间不能为空白,我将00:00内定为没设时间
    end;
   reg.CloseKey;
   reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',True) then
    begin
     Reg.WriteString(略);
    end;   
  reg.CloseKey;
 Application.MessageBox('设置成功!','提示',MB_OK);
  finally
  reg.Free;
  end;这样写注册表操作是成功的,请高手看看有没有哪里需要优化一下?
end;

解决方案 »

  1.   

    出错提示那个大多用异常处理,SEH,不过根本上还是要保证代码的健壮性,毕竟出错不能死机这个要求……
      

  2.   

    找了很多资料,都是类似Delphi源程序格式书写规范,没找到具体的代码书写过程中要注意怎么缩进,怎么样层次分明的教程,不知道哪里有?
      

  3.   

    我来边学边用一下,再写一遍var
       Reg:TRegistry;
    begin
        reg := TRegistry.Create;
      try
           reg.RootKey := HKEY_CURRENT_USER;
       if Reg.OpenKey('\Software\Cyberhood',True) then
          begin
            Reg.WriteTime('time1',DateTimePicker1.Time);
            Reg.WriteTime('time2',strtotime('00:00')); 
           end;
           reg.CloseKey;
           reg.RootKey := HKEY_LOCAL_MACHINE;
       if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',True) then
          begin
           Reg.WriteString(略);
          end;   
           reg.CloseKey;
           Application.MessageBox('设置成功!','提示',MB_OK);
     finally
       reg.Free;
     end;end;