Esto hago al guardar el ancho de columnas de un DBGrid,
Código Delphi
[-]
Var
Registro : TRegistry;
F : Byte;
Begin
Registro:=TRegistry.Create;
Registro.OpenKey('\Software\Administrador\'+v_Empresa+'\Grids',True);
For F:=0 To DbGrid.Columns.Count-1 Do Registro.WriteInteger(nombForm+DbGrid.Name+'['+IntToStr(F)+']',DbGrid.Columns[F].Width);
Registro.Free;
La unica diferencia q veo con tu codigo, es que no uso el " CloseKey; "
Uso Delphi 6 y Win Xp.
Saludos, suerte.