FormClose中的Reg只有申明,没有创建。
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Desire := '加不加分随你';
—————————————————————————————————
       

解决方案 »

  1.   

    同时提醒你,TRegistry对象使用完毕后应该释放:
    var
      Reg:TRegistry;
    begin
      ......
      Reg.Free;
    end;
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Desire := '加不加分随你';
    —————————————————————————————————
           
      

  2.   

    还不行呀!出现一个it's a value integer value!
      

  3.   

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    var
     Reg:TRegistry;
    begin
      Reg:=TRegistry.Create;
     Reg.Rootkey:=HKEY_CURRENT_USER;
     Reg.OpenKey('software',false);
     //
     Reg.CreateKey('My software');
     Reg.OpenKey('My software',false);
     //
     Reg.CreateKey('110');
     Reg.OpenKey('110',true);
     //
    // Reg.CreateKey('secret');
    // Reg.OpenKey('secret',true);
     if Form1.WindowState=(WSMaximized) then
      begin
       Reg.OpenKey('secret',true);
     //if Form1.WindowState=(WSMaximized) then
       Reg.WriteString('max','y');
      end
      else
      begin
        Reg.OpenKey('secret',true);
        Reg.WriteString('max','n');
        Reg.WriteString('top',inttostr(Form1.Top));
        Reg.WriteString('left',inttostr(Form1.Left));
        Reg.WriteString('height',inttostr(Form1.Height));
        Reg.WriteString('width',inttostr(Form1.Width));
      end;end;
      

  4.   

    Procedure TForm1.FormCreate(Sender: TObject);
    Var
       Reg : TRegistry;
    Begin
         Reg := TRegistry.Create;
         Try
            Reg.Rootkey := HKEY_CURRENT_USER;
            Reg.OpenKey( '\Software\My Software\110\Secret', True );
            If( Reg.ReadString( 'First' ) <> '1' ) Then
            Begin
                 Reg.WriteString( 'First', '1' );
                 Form1.WindowState := ( WSNormal );
                 Form1.Top         :=10;
                 Form1.Left        :=10;
                 Form1.Height      :=100;
                 Form1.Width       :=100;
            End
            Else
            Begin
                 If( Reg.ReadString( 'Max' ) = 'y' ) Then Form1.WindowState:=( WSMaximized )
                 Else
                 Begin
                      Reg.WriteString( 'max', 'n' );
                      Form1.Top    := StrToInt( Reg.ReadString( 'top' ) );
                      Form1.Left   := StrToInt( Reg.ReadString( 'left' ) );
                      Form1.Height := StrToInt( Reg.ReadString( 'height ' ) );
                      Form1.Width  := StrToInt( Reg.ReadString( 'width' ) );
                 End;
            End;
         Finally
                Reg.Free;
         End;
    End;
    Procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    Var
       Reg : TRegistry;
    Begin
         Reg:=TRegistry.Create;
         Try
            Reg.OpenKey( '\Software\My Software\110\Secret', True );
            If Form1.WindowState = ( WSMaximized ) Then Reg.WriteString( 'max', 'y' )
            Else
            Begin
                 Reg.WriteString( 'max', 'n');
                 Reg.WriteString( 'top', IntToStr( Form1.Top ) );
                 Reg.WriteString( 'left', IntToStr( Form1.Left ) );
                 Reg.WriteString( 'height', IntToStr( Form1.Height ) );
                 Reg.WriteString( 'width', IntToStr( Form1.Width ) );
            End;
         Finally
                Reg.Free;
         End;
    End;
      

  5.   

    在FormClose处少了以下内容:
    Reg.Rootkey := HKEY_CURRENT_USER;