OSDN Git Service

1.52.1.658
[gikonavigoeson/gikonavi.git] / HTMLCreate.pas
index 6284ab1..baf9a40 100644 (file)
@@ -38,6 +38,7 @@ type
                destructor Destory;
                procedure Open;
                procedure Close;
+               procedure Flush;
                function Add(const S: string): Integer; override;
        end;
        THTMLCreate = class(TObject)
@@ -53,10 +54,10 @@ type
                constructor Create;
 
                function AddBeProfileLink(AID : string; ANum: Integer):string ;
-               procedure CreateUsePluginHTML(html:TStringList; ThreadItem: TThreadItem; var sTitle: string);
-               procedure CreateUseSKINHTML(html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList);
-               procedure CreateUseCSSHTML(html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string );
-               procedure CreateDefaultHTML (html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string );
+               procedure CreateUsePluginHTML(html:TBufferedWebBrowser; ThreadItem: TThreadItem; var sTitle: string);
+               procedure CreateUseSKINHTML(html:TBufferedWebBrowser; ThreadItem: TThreadItem; ReadList: TStringList);
+               procedure CreateUseCSSHTML(html:TBufferedWebBrowser; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string );
+               procedure CreateDefaultHTML (html:TBufferedWebBrowser; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string );
                procedure ConvertResAnchor(PRes: PResRec);
                procedure separateNumber(var st: String; var et: String; const Text, Separator: String);
                function checkComma(const s : String; var j : Integer; var No  : String) : boolean;
@@ -295,10 +296,10 @@ begin
                                if pos = nil then
                                        b := Length(REF_MARK[idx2])
                                else
-                                       b := pos - pp + 1;
+                                       b := pos - (pp  + idx) + 1;
 
                                len := Length(PRes.FBody);
-                               SetLength(PRes.FBody, len + idx + b);
+                               SetLength(PRes.FBody, len + idx + b );
                                Move(pp^, PRes.FBody[len + 1], idx + b);
                                Delete(s, 1, idx + b);
                        end else begin
@@ -793,7 +794,7 @@ begin
 end;
 
 //Plugin\82ð\97\98\97p\82·\82éBoard\82Ì\83X\83\8c\83b\83h\82ÌHTML\82ð\8dì\90¬\82µ\82Ädoc\82É\8f\91\82«\8d\9e\82Þ
-procedure THTMLCreate.CreateUsePluginHTML(html:TStringList; ThreadItem: TThreadItem; var sTitle: string);
+procedure THTMLCreate.CreateUsePluginHTML(html:TBufferedWebBrowser; ThreadItem: TThreadItem; var sTitle: string);
 var
        i: integer;
        NewReceiveNo: Integer;
@@ -808,7 +809,8 @@ begin
        html.add(boardPlugIn.GetHeader( DWORD( threadItem ),
                '<style type="text/css">body {' + UserOptionalStyle + '}</style>' ));
        html.Add('<p id="idSearch"></p>');
-
+       html.Flush;
+       
        for i := 0 to threadItem.Count - 1 do begin
                // 1 \82Í\95K\82¸\95\\8e¦
                if i <> 0 then begin
@@ -877,7 +879,7 @@ begin
 end;
 
 
-procedure THTMLCreate.CreateUseSKINHTML(html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList);
+procedure THTMLCreate.CreateUseSKINHTML(html:TBufferedWebBrowser; ThreadItem: TThreadItem; ReadList: TStringList);
 const
        KOKO_TAG = '<a name="koko"></a>';
        NEW_TAG = '<a name="new"></a>';
@@ -912,6 +914,7 @@ begin
        SkinRes := LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, ThreadItem.Size );
 
        html.Add('<p id="idSearch"></p>'#13#10'<a name="top"></a>');
+       html.Flush;
 
        for i := 0 to ReadList.Count - 1 do begin
                // 1 \82Í\95K\82¸\95\\8e¦
@@ -966,7 +969,7 @@ begin
        html.Add( LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, ThreadItem.Size ) );
 end;
 
-procedure THTMLCreate.CreateUseCSSHTML(html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string );
+procedure THTMLCreate.CreateUseCSSHTML(html:TBufferedWebBrowser; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string );
 const
        FORMAT_NOMAIL  = '<a name="%s"></a><div class="header"><span class="no"><a href="menu:%s">%s</a></span>'
                                        + '<span class="name_label"> \96¼\91O\81F </span> <span class="name"><b>%s</b></span>'
@@ -1010,6 +1013,7 @@ begin
                html.Add('</head>'#13#10'<body>');
                html.Add('<a name="top"></a>'#13#10'<p id="idSearch"></p>');
                html.Add('<div class="title">' + sTitle + '</div>');
+               html.Flush;
                for i := 0 to ReadList.Count - 1 do begin
                        // 1 \82Í\95K\82¸\95\\8e¦
                        if i <> 0 then begin
@@ -1057,7 +1061,7 @@ begin
        end;
 end;
 
-procedure THTMLCreate.CreateDefaultHTML (html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string );
+procedure THTMLCreate.CreateDefaultHTML (html:TBufferedWebBrowser; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string );
 var
        i: integer;
        No: string;
@@ -1078,6 +1082,7 @@ begin
        html.Add('<font size=+1 color="#FF0000">' + sTitle + '</font>');
        html.Add('<dl>');
        html.Add('<p id="idSearch"></p>');
+       html.Flush;
        for i := 0 to ReadList.Count - 1 do begin
                // 1 \82Í\95K\82¸\95\\8e¦
                if i <> 0 then begin
@@ -1716,7 +1721,7 @@ begin
        end else begin
                FBuffSize := BuffSize;
        end;
-       Self.Capacity := FBuffSize + 1;
+       Self.Capacity := FBuffSize + 10;
 end;
 procedure TBufferedWebBrowser.Open;
 begin
@@ -1726,10 +1731,7 @@ begin
 end;
 procedure TBufferedWebBrowser.Close;
 begin
-       if (Self.Count > 0) then begin
-               FBrowserDoc.Write(Self.Text);
-               Self.Clear;
-       end;
+       Self.Flush;
        try
                FBrowserDoc.Close;
        except
@@ -1738,12 +1740,19 @@ begin
 end;
 function TBufferedWebBrowser.Add(const S: string): Integer;
 begin
-       Result := inherited Add(S);
+       Result := inherited Add(TrimRight(s));
        if (Self.Count > FBuffSize) then begin
                FBrowserDoc.Write(Self.Text);
                Self.Clear;
        end;
 end;
+procedure TBufferedWebBrowser.Flush ;
+begin
+       if (Self.Count > 0) then begin
+               FBrowserDoc.Write(Self.Text);
+               Self.Clear;
+       end;
+end;
 destructor TBufferedWebBrowser.Destory;
 begin
        try