在做序列化保存的过程中,遇到了以下问题:
当打开保存过的文件,在保存一遍的时候,文件会变大(里面的内容重复保存)
代码如下:
保存过程
    if m_pSheet<>nil then
    begin
        pTempWin:= TPageControl(m_pSheet.PageControl);
        m_pSheet.PageControl:=nil;
        Writer.WriteBoolean(true);
        Writer.WriteComponent(TTabSheet(m_pSheet));        m_pSheet.PageControl:=TPageControl(pTempWin);
    end
    else
        Writer.WriteBoolean(false);    if  m_pShadow<>nil then    //存储TScrollBox
    begin
        pTempWin:= TTabSheet(m_pShadow.Parent);
        m_pShadow.Parent:=nil;        Writer.WriteBoolean(true);
        Writer.WriteComponent(TScrollBox(m_pShadow));        m_pShadow.Parent:=TTabSheet(pTempWin);
    end
    else
        Writer.WriteBoolean(false);
打开过程:
    if Reader.ReadBoolean=true then
    begin
        if m_pSheet<>nil then
            m_pSheet.Free;
        pTempCmp:=Reader.ReadComponent(nil);
        m_pSheet:=TTabSheet(pTempCmp);
    end;    if Reader.ReadBoolean=true then
    begin
        pTempCmp:=Reader.ReadComponent(nil);
        m_pShadow:=TScrollBox(pTempCmp);
        m_pShadow.Parent:=m_pSheet;
    end;
请看保存后的文件:
第一次保存的文件:
   TPF0 THWReport  HWReportViewd  TTabSheet Caption   h?   
TScrollBox Left Top WidthlHeightvAlignalClientColorclAppWorkSpace ParentColor 
打开第一次保存的文件,然后在保存的文件是:
   TPF0 THWReport  HWReportViewd  TTabSheet Caption   h?  
TScrollBox Left Top WidthlHeight?AlignalClientColorclAppWorkSpace ParentColorTabOrder    
TScrollBox Left Top WidthlHeightvAlignalClientColorclAppWorkSpace ParentColor        大家可以看到 TScrollBox 保存了两次,请问为什么?