OSDN Git Service

DAT中にnullがあっても切れないように修正。
authorh677 <h677>
Sun, 26 Feb 2006 16:40:52 +0000 (16:40 +0000)
committerh677 <h677>
Sun, 26 Feb 2006 16:40:52 +0000 (16:40 +0000)
取得済みのスレッドへのJumpを修正。
入力アシストのフォーム位置保存。

Giko.pas
GikoSystem.pas
HTMLCreate.pas
InputAssist.dfm
InputAssist.pas
Setting.pas

index 9fdc35c..f061260 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -4624,6 +4624,11 @@ begin
                end else if (not browserRec.Repaint) and (stRes > 0) then begin
                        browserRec.Move(IntToStr(stRes));
                        Thread.JumpAddress := 0;
+                       try
+                               doc := Idispatch( OleVariant( browserRec.Browser.ControlInterface ).Document ) as IHTMLDocument2;
+                               Thread.ScrollTop := doc.Body.ScrollTop;
+                       except
+                       end;
                end;
        end;
 end;
index a30b6b5..e4c220b 100644 (file)
@@ -1544,7 +1544,11 @@ begin
                        Dec(i);
                Delete(s, i + 1, ln - i);
 
-               s := MojuUtils.CustomStringReplace(s, #0, '*');
+               i := Pos(#0, s);
+               while i <> 0 do begin
+                       s[i] := '*';
+                       i := Pos(#0, s);
+               end;
 
                Result := s;
        finally
index a559f10..6284ab1 100644 (file)
@@ -805,81 +805,75 @@ begin
        NewReceiveNo    := ThreadItem.NewReceive;
        // \83t\83H\83\93\83g\82â\83T\83C\83Y\82Ì\90Ý\92è
        UserOptionalStyle := GikoSys.SetUserOptionalStyle;
-       try
-//             doc.open;
-               // \83w\83b\83_
-               html.add(boardPlugIn.GetHeader( DWORD( threadItem ),
-                       '<style type="text/css">body {' + UserOptionalStyle + '}</style>' ));
-               html.Add('<p id="idSearch"></p>');
-
-               for i := 0 to threadItem.Count - 1 do begin
-                       // 1 \82Í\95K\82¸\95\\8e¦
-                       if i <> 0 then begin
-                               // \95\\8e¦\94Í\88Í\82ð\8cÀ\92è
-                               case GikoSys.ResRange of
-                               Ord( grrKoko ):
-                                       if ThreadItem.Kokomade > (i + 1) then
-                                               Continue;
-                               Ord( grrNew ):
-                                       if NewReceiveNo > (i + 1) then
-                                               Continue;
-                               10..65535:
-                                       if (threadItem.Count - i) > GikoSys.ResRange then
-                                               Continue;
-                               end;
+       html.add(boardPlugIn.GetHeader( DWORD( threadItem ),
+               '<style type="text/css">body {' + UserOptionalStyle + '}</style>' ));
+       html.Add('<p id="idSearch"></p>');
+
+       for i := 0 to threadItem.Count - 1 do begin
+               // 1 \82Í\95K\82¸\95\\8e¦
+               if i <> 0 then begin
+                       // \95\\8e¦\94Í\88Í\82ð\8cÀ\92è
+                       case GikoSys.ResRange of
+                       Ord( grrKoko ):
+                               if ThreadItem.Kokomade > (i + 1) then
+                                       Continue;
+                       Ord( grrNew ):
+                               if NewReceiveNo > (i + 1) then
+                                       Continue;
+                       10..65535:
+                               if (threadItem.Count - i) > GikoSys.ResRange then
+                                       Continue;
                        end;
+               end;
 
-                       // \90V\92\85\83}\81[\83N
-                       if (NewReceiveNo = (i + 1)) or ((NewReceiveNo = 0) and (i = 0)) then begin
-                               try
-                                       if GikoSys.Setting.UseSkin then begin
-                                               if FileExists( GikoSys.GetSkinNewmarkFileName ) then
-                                                       html.Add( LoadFromSkin( GikoSys.GetSkinNewmarkFileName, ThreadItem, ThreadItem.Size ))
-                                               else
-                                                       html.Add( '<a name="new"></a>');
-                                       end else if GikoSys.Setting.UseCSS then begin
-                                               html.Add('<a name="new"></a><div class="new">\90V\92\85\83\8c\83X <span class="newdate">' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</span></div>');
-                                       end else begin
-                                               html.Add('</dl>');
-                                               html.Add('<a name="new"></a>');
-                                               html.Add('<table width="100%" bgcolor="#3333CC" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#6666FF" valign="middle"><font size="-1" color="#ffffff"><b>\90V\92\85\83\8c\83X ' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</b></font></td></tr></table>');
-                                               html.Add('<dl>');
-                                       end;
-                               except
-                                       html.Add( '<a name="new"></a>');
+               // \90V\92\85\83}\81[\83N
+               if (NewReceiveNo = (i + 1)) or ((NewReceiveNo = 0) and (i = 0)) then begin
+                       try
+                               if GikoSys.Setting.UseSkin then begin
+                                       if FileExists( GikoSys.GetSkinNewmarkFileName ) then
+                                               html.Add( LoadFromSkin( GikoSys.GetSkinNewmarkFileName, ThreadItem, ThreadItem.Size ))
+                                       else
+                                               html.Add( '<a name="new"></a>');
+                               end else if GikoSys.Setting.UseCSS then begin
+                                       html.Add('<a name="new"></a><div class="new">\90V\92\85\83\8c\83X <span class="newdate">' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</span></div>');
+                               end else begin
+                                       html.Add('</dl>');
+                                       html.Add('<a name="new"></a>');
+                                       html.Add('<table width="100%" bgcolor="#3333CC" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#6666FF" valign="middle"><font size="-1" color="#ffffff"><b>\90V\92\85\83\8c\83X ' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</b></font></td></tr></table>');
+                                       html.Add('<dl>');
                                end;
+                       except
+                               html.Add( '<a name="new"></a>');
                        end;
+               end;
 
-                       // \83\8c\83X
-                       html.Add( boardPlugIn.GetRes( DWORD( threadItem ), i + 1 ));
+               // \83\8c\83X
+               html.Add( boardPlugIn.GetRes( DWORD( threadItem ), i + 1 ));
 
-                       if ThreadItem.Kokomade = (i + 1) then begin
-                               // \82±\82±\82Ü\82Å\93Ç\82ñ\82¾
-                               try
-                                       if GikoSys.Setting.UseSkin then begin
-                                               if FileExists( GikoSys.GetSkinBookmarkFileName ) then
-                                                       html.Add( LoadFromSkin( GikoSys.GetSkinBookmarkFileName, ThreadItem, ThreadItem.Size ))
-                                               else
-                                                       html.Add( '<a name="koko"></a>');
-                                       end else if GikoSys.Setting.UseCSS then begin
-                                               html.Add('<a name="koko"></a><div class="koko">\83R\83R\82Ü\82Å\93Ç\82ñ\82¾</div>');
-                                       end else begin
-                                               html.Add('</dl>');
-                                               html.Add('<a name="koko"></a><table width="100%" bgcolor="#55AA55" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#77CC77" valign="middle"><font size="-1" color="#ffffff"><b>\83R\83R\82Ü\82Å\93Ç\82ñ\82¾</b></font></td></tr></table>');
-                                               html.Add('<dl>');
-                                       end;
-                               except
-                                       html.Add('<a name="koko"></a>');
+               if ThreadItem.Kokomade = (i + 1) then begin
+                       // \82±\82±\82Ü\82Å\93Ç\82ñ\82¾
+                       try
+                               if GikoSys.Setting.UseSkin then begin
+                                       if FileExists( GikoSys.GetSkinBookmarkFileName ) then
+                                               html.Add( LoadFromSkin( GikoSys.GetSkinBookmarkFileName, ThreadItem, ThreadItem.Size ))
+                                       else
+                                               html.Add( '<a name="koko"></a>');
+                               end else if GikoSys.Setting.UseCSS then begin
+                                       html.Add('<a name="koko"></a><div class="koko">\83R\83R\82Ü\82Å\93Ç\82ñ\82¾</div>');
+                               end else begin
+                                       html.Add('</dl>');
+                                       html.Add('<a name="koko"></a><table width="100%" bgcolor="#55AA55" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#77CC77" valign="middle"><font size="-1" color="#ffffff"><b>\83R\83R\82Ü\82Å\93Ç\82ñ\82¾</b></font></td></tr></table>');
+                                       html.Add('<dl>');
                                end;
+                       except
+                               html.Add('<a name="koko"></a>');
                        end;
                end;
+       end;
 
 
-               // \83X\83L\83\93(\83t\83b\83^)
-               html.Add( boardPlugIn.GetFooter( DWORD( threadItem ), '<a name="bottom"></a>' ));
-       finally
-               //doc.Close;
-       end;
+       // \83X\83L\83\93(\83t\83b\83^)
+       html.Add( boardPlugIn.GetFooter( DWORD( threadItem ), '<a name="bottom"></a>' ));
 end;
 
 
@@ -904,80 +898,72 @@ begin
        ThreadName := ChangeFileExt(ThreadItem.FileName, '');
        ResLink.FBbs := ThreadItem.ParentBoard.BBSID;
        ResLink.FKey := ThreadName;
-       //,
-       //doc.open;
+       // \83X\83L\83\93\82Ì\90Ý\92è
        try
-               //doc.charset := 'Shift_JIS';
-
-               // \83X\83L\83\93\82Ì\90Ý\92è
-               try
-                       SkinHeader := LoadFromSkin( GikoSys.GetSkinHeaderFileName, ThreadItem, ThreadItem.Size);
-                       if Length( UserOptionalStyle ) > 0 then
-                               SkinHeader := CustomStringReplace( SkinHeader, '</head>',
-                                       '<style type="text/css">body {' + UserOptionalStyle + '}</style></head>');
-                       html.Add( SkinHeader );
-               except
-               end;
-
-               SkinNewRes := LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, ThreadItem.Size);
-               SkinRes := LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, ThreadItem.Size );
-
-               html.Add('<p id="idSearch"></p>'#13#10'<a name="top"></a>');
-
-               for i := 0 to ReadList.Count - 1 do begin
-                       // 1 \82Í\95K\82¸\95\\8e¦
-                       if i <> 0 then begin
-                               // \95\\8e¦\94Í\88Í\82ð\8cÀ\92è
-                               case GikoSys.ResRange of
-                               Ord( grrKoko ):
-                                       if ThreadItem.Kokomade > (i + 1) then
-                                               Continue;
-                               Ord( grrNew ):
-                                       if NewReceiveNo > (i + 1) then
-                                               Continue;
-                               10..65535:
-                                       if (threadItem.Count - i) > GikoSys.ResRange then
-                                               Continue;
-                               end;
-                       end;
+               SkinHeader := LoadFromSkin( GikoSys.GetSkinHeaderFileName, ThreadItem, ThreadItem.Size);
+               if Length( UserOptionalStyle ) > 0 then
+                       SkinHeader := CustomStringReplace( SkinHeader, '</head>',
+                               '<style type="text/css">body {' + UserOptionalStyle + '}</style></head>');
+               html.Add( SkinHeader );
+       except
+       end;
 
-                       // \90V\92\85\83}\81[\83N
-                       if (NewReceiveNo = i + 1) or ((NewReceiveNo = 0) and (i = 0)) then begin
-                               if FileExists( GikoSys.GetSkinNewmarkFileName ) then
-                                       html.Add( LoadFromSkin( GikoSys.GetSkinNewmarkFileName, ThreadItem, ThreadItem.Size ))
-                               else
-                                       html.Add( NEW_TAG );
+       SkinNewRes := LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, ThreadItem.Size);
+       SkinRes := LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, ThreadItem.Size );
+
+       html.Add('<p id="idSearch"></p>'#13#10'<a name="top"></a>');
+
+       for i := 0 to ReadList.Count - 1 do begin
+               // 1 \82Í\95K\82¸\95\\8e¦
+               if i <> 0 then begin
+                       // \95\\8e¦\94Í\88Í\82ð\8cÀ\92è
+                       case GikoSys.ResRange of
+                       Ord( grrKoko ):
+                               if ThreadItem.Kokomade > (i + 1) then
+                                       Continue;
+                       Ord( grrNew ):
+                               if NewReceiveNo > (i + 1) then
+                                       Continue;
+                       10..65535:
+                               if (threadItem.Count - i) > GikoSys.ResRange then
+                                       Continue;
                        end;
+               end;
 
-                       if (Trim(ReadList[i]) <> '') then begin
-                               DivideStrLine(ReadList[i], @Res);
-                               AddAnchorTag(@Res);
-                               ConvRes(@Res, @ResLink);
-                               Res.FDateTime := AddBeProfileLink(Res.FDateTime, i + 1);
+               // \90V\92\85\83}\81[\83N
+               if (NewReceiveNo = i + 1) or ((NewReceiveNo = 0) and (i = 0)) then begin
+                       if FileExists( GikoSys.GetSkinNewmarkFileName ) then
+                               html.Add( LoadFromSkin( GikoSys.GetSkinNewmarkFileName, ThreadItem, ThreadItem.Size ))
+                       else
+                               html.Add( NEW_TAG );
+               end;
 
-                               if NewReceiveNo <= (i + 1) then
-                                       // \90V\92\85\83\8c\83X
-                                       html.Add(SkinedRes(SkinNewRes, @Res, IntToStr(i + 1)))
-                               else
-                                       // \92Ê\8fí\82Ì\83\8c\83X
-                                       html.Add(SkinedRes(SkinRes, @Res, IntToStr(i + 1)));
-                       end;
+               if (Trim(ReadList[i]) <> '') then begin
+                       DivideStrLine(ReadList[i], @Res);
+                       AddAnchorTag(@Res);
+                       ConvRes(@Res, @ResLink);
+                       Res.FDateTime := AddBeProfileLink(Res.FDateTime, i + 1);
 
-                       if ThreadItem.Kokomade = (i + 1) then begin
-                               // \82±\82±\82Ü\82Å\93Ç\82ñ\82¾
-                               if FileExists( GikoSys.GetSkinBookmarkFileName ) then
-                                       html.Add( LoadFromSkin( GikoSys.GetSkinBookmarkFileName, ThreadItem, ThreadItem.Size ))
-                               else
-                                       html.Add( KOKO_TAG );
-                       end;
+                       if NewReceiveNo <= (i + 1) then
+                               // \90V\92\85\83\8c\83X
+                               html.Add(SkinedRes(SkinNewRes, @Res, IntToStr(i + 1)))
+                       else
+                               // \92Ê\8fí\82Ì\83\8c\83X
+                               html.Add(SkinedRes(SkinRes, @Res, IntToStr(i + 1)));
                end;
 
-               html.Add('<a name="bottom"></a>');
-               // \83X\83L\83\93(\83t\83b\83^)
-               html.Add( LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, ThreadItem.Size ) );
-       finally
-               //doc.close;
+               if ThreadItem.Kokomade = (i + 1) then begin
+                       // \82±\82±\82Ü\82Å\93Ç\82ñ\82¾
+                       if FileExists( GikoSys.GetSkinBookmarkFileName ) then
+                               html.Add( LoadFromSkin( GikoSys.GetSkinBookmarkFileName, ThreadItem, ThreadItem.Size ))
+                       else
+                               html.Add( KOKO_TAG );
+               end;
        end;
+
+       html.Add('<a name="bottom"></a>');
+       // \83X\83L\83\93(\83t\83b\83^)
+       html.Add( LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, ThreadItem.Size ) );
 end;
 
 procedure THTMLCreate.CreateUseCSSHTML(html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string );
@@ -1006,101 +992,24 @@ var
        ThreadName :String;
        ResLink :TResLinkRec;
 begin
-       //doc.open;
-       try
-               //doc.charset := 'Shift_JIS';
-               NewReceiveNo := ThreadItem.NewReceive;
-               ThreadName := ChangeFileExt(ThreadItem.FileName, '');
-               ResLink.FBbs := ThreadItem.ParentBoard.BBSID;
-               ResLink.FKey := ThreadName;
-               // \83t\83H\83\93\83g\82â\83T\83C\83Y\82Ì\90Ý\92è
-               UserOptionalStyle := GikoSys.SetUserOptionalStyle;
-               CSSFileName := GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName;
-               if GikoSys.Setting.UseCSS and FileExists(CSSFileName) then begin
-                       //CSS\8eg\97p
-                       html.Add('<html><head>');
-                       html.Add('<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">');
-                       html.Add('<title>' + sTitle + '</title>');
-                       html.Add('<link rel="stylesheet" href="'+CSSFileName+'" type="text/css">');
-                       if Length( UserOptionalStyle ) > 0 then
-                               html.Add('<style type="text/css">body {' + UserOptionalStyle + '}</style>');
-                       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>');
-                       for i := 0 to ReadList.Count - 1 do begin
-                               // 1 \82Í\95K\82¸\95\\8e¦
-                               if i <> 0 then begin
-                                       // \95\\8e¦\94Í\88Í\82ð\8cÀ\92è
-                                       case GikoSys.ResRange of
-                                       Ord( grrKoko ):
-                                               if ThreadItem.Kokomade > (i + 1) then
-                                                       Continue;
-                                       Ord( grrNew ):
-                                               if NewReceiveNo > (i + 1) then
-                                                       Continue;
-                                       10..65535:
-                                               if (threadItem.Count - i) > GikoSys.ResRange then
-                                                       Continue;
-                                       end;
-                               end;
-
-                               if (NewReceiveNo = (i + 1)) or ((NewReceiveNo = 0) and (i = 0)) then begin
-                                       html.Add('<a name="new"></a><div class="new">\90V\92\85\83\8c\83X <span class="newdate">' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</span></div>');
-                               end;
-
-                               if (Trim(ReadList[i]) <> '') then begin
-                                       No := IntToStr(i + 1);
-                                       DivideStrLine(ReadList[i], @Res);
-                                       AddAnchorTag(@Res);
-                                       ConvRes(@Res, @ResLink);
-                                       Res.FDateTime := AddBeProfileLink(Res.FDateTime, i + 1);
-                                       if Res.FMailTo = '' then
-                                               html.Add(Format(FORMAT_NOMAIL, [No, No, No, Res.FName, Res.FDateTime, Res.FBody]))
-                                       else if GikoSys.Setting.ShowMail then
-                                               html.Add(Format(FORMAT_SHOWMAIL, [No, No, No, Res.FMailTo, Res.FName, Res.FMailTo, Res.FDateTime, Res.FBody]))
-                                       else
-                                               html.Add(Format(FORMAT_NOSHOW, [No, No, No, Res.FMailTo, Res.FName, Res.FDateTime, Res.FBody]));
-                               end;
-
-                               if ThreadItem.Kokomade = (i + 1) then begin
-                                       html.Add('<a name="koko"></a><div class="koko">\83R\83R\82Ü\82Å\93Ç\82ñ\82¾</div>');
-                               end;
-
-                       end;
-
-                       html.Add('<a name="bottom"></a>');
-                       html.Add('<a name="last"></a>');
-                       html.Add('</body></html>');
-               end;
-       finally
-               //doc.Close;
-       end;
-end;
-
-procedure THTMLCreate.CreateDefaultHTML (html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string );
-var
-       i: integer;
-       No: string;
-       NewReceiveNo: Integer;
-       Res: TResRec;
-       ThreadName: String;
-       ResLink : TResLinkRec;
-begin
-//     doc.open;
-       try
-//             doc.charset := 'Shift_JIS';
-               NewReceiveNo := ThreadItem.NewReceive;
-               ThreadName := ChangeFileExt(ThreadItem.FileName, '');
-               ResLink.FBbs := ThreadItem.ParentBoard.BBSID;
-               ResLink.FKey := ThreadName;
+       NewReceiveNo := ThreadItem.NewReceive;
+       ThreadName := ChangeFileExt(ThreadItem.FileName, '');
+       ResLink.FBbs := ThreadItem.ParentBoard.BBSID;
+       ResLink.FKey := ThreadName;
+       // \83t\83H\83\93\83g\82â\83T\83C\83Y\82Ì\90Ý\92è
+       UserOptionalStyle := GikoSys.SetUserOptionalStyle;
+       CSSFileName := GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName;
+       if GikoSys.Setting.UseCSS and FileExists(CSSFileName) then begin
+               //CSS\8eg\97p
                html.Add('<html><head>');
                html.Add('<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">');
-               html.Add('<title>' + sTitle + '</title></head>');
-               html.Add('<body TEXT="#000000" BGCOLOR="#EFEFEF" link="#0000FF" alink="#FF0000" vlink="#660099">');
-               html.Add('<a name="top"></a>');
-               html.Add('<font size=+1 color="#FF0000">' + sTitle + '</font>');
-               html.Add('<dl>');
-               html.Add('<p id="idSearch"></p>');
+               html.Add('<title>' + sTitle + '</title>');
+               html.Add('<link rel="stylesheet" href="'+CSSFileName+'" type="text/css">');
+               if Length( UserOptionalStyle ) > 0 then
+                       html.Add('<style type="text/css">body {' + UserOptionalStyle + '}</style>');
+               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>');
                for i := 0 to ReadList.Count - 1 do begin
                        // 1 \82Í\95K\82¸\95\\8e¦
                        if i <> 0 then begin
@@ -1119,10 +1028,7 @@ begin
                        end;
 
                        if (NewReceiveNo = (i + 1)) or ((NewReceiveNo = 0) and (i = 0)) then begin
-                               html.Add('</dl>');
-                               html.Add('<a name="new"></a>');
-                               html.Add('<table width="100%" bgcolor="#3333CC" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#6666FF" valign="middle"><font size="-1" color="#ffffff"><b>\90V\92\85\83\8c\83X ' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</b></font></td></tr></table>');
-                               html.Add('<dl>');
+                               html.Add('<a name="new"></a><div class="new">\90V\92\85\83\8c\83X <span class="newdate">' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</span></div>');
                        end;
 
                        if (Trim(ReadList[i]) <> '') then begin
@@ -1132,22 +1038,90 @@ begin
                                ConvRes(@Res, @ResLink);
                                Res.FDateTime := AddBeProfileLink(Res.FDateTime, i + 1);
                                if Res.FMailTo = '' then
-                                       html.Add('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> \96¼\91O\81F<font color="forestgreen"><b> ' + Res.FName + ' </b></font> \93\8a\8de\93ú\81F <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10)
+                                       html.Add(Format(FORMAT_NOMAIL, [No, No, No, Res.FName, Res.FDateTime, Res.FBody]))
                                else if GikoSys.Setting.ShowMail then
-                                       html.Add('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> \96¼\91O\81F<a href="mailto:' + Res.FMailTo + '"><b> ' + Res.FName + ' </B></a> [' + Res.FMailTo + '] \93\8a\8de\93ú\81F <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10)
+                                       html.Add(Format(FORMAT_SHOWMAIL, [No, No, No, Res.FMailTo, Res.FName, Res.FMailTo, Res.FDateTime, Res.FBody]))
                                else
-                                       html.Add('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> \96¼\91O\81F<a href="mailto:' + Res.FMailTo + '"><b> ' + Res.FName + ' </B></a> \93\8a\8de\93ú\81F <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10);
+                                       html.Add(Format(FORMAT_NOSHOW, [No, No, No, Res.FMailTo, Res.FName, Res.FDateTime, Res.FBody]));
                        end;
+
                        if ThreadItem.Kokomade = (i + 1) then begin
-                               html.Add('</dl>');
-                               html.Add('<a name="koko"></a><table width="100%" bgcolor="#55AA55" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#77CC77" valign="middle"><font size="-1" color="#ffffff"><b>\83R\83R\82Ü\82Å\93Ç\82ñ\82¾</b></font></td></tr></table>');
-                               html.Add('<dl>');
+                               html.Add('<a name="koko"></a><div class="koko">\83R\83R\82Ü\82Å\93Ç\82ñ\82¾</div>');
                        end;
+
+               end;
+
+               html.Add('<a name="bottom"></a>');
+               html.Add('<a name="last"></a>');
+               html.Add('</body></html>');
+       end;
+end;
+
+procedure THTMLCreate.CreateDefaultHTML (html:TStringList; ThreadItem: TThreadItem; ReadList: TStringList; sTitle: string );
+var
+       i: integer;
+       No: string;
+       NewReceiveNo: Integer;
+       Res: TResRec;
+       ThreadName: String;
+       ResLink : TResLinkRec;
+begin
+       NewReceiveNo := ThreadItem.NewReceive;
+       ThreadName := ChangeFileExt(ThreadItem.FileName, '');
+       ResLink.FBbs := ThreadItem.ParentBoard.BBSID;
+       ResLink.FKey := ThreadName;
+       html.Add('<html><head>');
+       html.Add('<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">');
+       html.Add('<title>' + sTitle + '</title></head>');
+       html.Add('<body TEXT="#000000" BGCOLOR="#EFEFEF" link="#0000FF" alink="#FF0000" vlink="#660099">');
+       html.Add('<a name="top"></a>');
+       html.Add('<font size=+1 color="#FF0000">' + sTitle + '</font>');
+       html.Add('<dl>');
+       html.Add('<p id="idSearch"></p>');
+       for i := 0 to ReadList.Count - 1 do begin
+               // 1 \82Í\95K\82¸\95\\8e¦
+               if i <> 0 then begin
+                       // \95\\8e¦\94Í\88Í\82ð\8cÀ\92è
+                       case GikoSys.ResRange of
+                       Ord( grrKoko ):
+                               if ThreadItem.Kokomade > (i + 1) then
+                                       Continue;
+                       Ord( grrNew ):
+                               if NewReceiveNo > (i + 1) then
+                                       Continue;
+                       10..65535:
+                               if (threadItem.Count - i) > GikoSys.ResRange then
+                                       Continue;
+                       end;
+               end;
+
+               if (NewReceiveNo = (i + 1)) or ((NewReceiveNo = 0) and (i = 0)) then begin
+                       html.Add('</dl>');
+                       html.Add('<a name="new"></a>');
+                       html.Add('<table width="100%" bgcolor="#3333CC" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#6666FF" valign="middle"><font size="-1" color="#ffffff"><b>\90V\92\85\83\8c\83X ' + FormatDateTime('yyyy/mm/dd(ddd) hh:mm', ThreadItem.RoundDate) + '</b></font></td></tr></table>');
+                       html.Add('<dl>');
+               end;
+
+               if (Trim(ReadList[i]) <> '') then begin
+                       No := IntToStr(i + 1);
+                       DivideStrLine(ReadList[i], @Res);
+                       AddAnchorTag(@Res);
+                       ConvRes(@Res, @ResLink);
+                       Res.FDateTime := AddBeProfileLink(Res.FDateTime, i + 1);
+                       if Res.FMailTo = '' then
+                               html.Add('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> \96¼\91O\81F<font color="forestgreen"><b> ' + Res.FName + ' </b></font> \93\8a\8de\93ú\81F <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10)
+                       else if GikoSys.Setting.ShowMail then
+                               html.Add('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> \96¼\91O\81F<a href="mailto:' + Res.FMailTo + '"><b> ' + Res.FName + ' </B></a> [' + Res.FMailTo + '] \93\8a\8de\93ú\81F <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10)
+                       else
+                               html.Add('<a name="' + No + '"></a><dt><a href="menu:' + No + '">' + No + '</a> \96¼\91O\81F<a href="mailto:' + Res.FMailTo + '"><b> ' + Res.FName + ' </B></a> \93\8a\8de\93ú\81F <span class="date">' + Res.FDateTime+ '</span><br><dd>' + Res.Fbody + ' <br><br><br>'#13#10);
+               end;
+               if ThreadItem.Kokomade = (i + 1) then begin
+                       html.Add('</dl>');
+                       html.Add('<a name="koko"></a><table width="100%" bgcolor="#55AA55" cellpadding="0" cellspacing="1"><tr><td align="center" bgcolor="#77CC77" valign="middle"><font size="-1" color="#ffffff"><b>\83R\83R\82Ü\82Å\93Ç\82ñ\82¾</b></font></td></tr></table>');
+                       html.Add('<dl>');
                end;
-               html.Add('</dl>'#13#10'<a name="bottom"></a>'#13#10'</body></html>');
-       finally
-               //doc.Close;
        end;
+       html.Add('</dl>'#13#10'<a name="bottom"></a>'#13#10'</body></html>');
 end;
 
 procedure THTMLCreate.CreateHTML2(Browser: TWebBrowser; ThreadItem: TThreadItem; var sTitle: string);
@@ -1760,6 +1734,7 @@ begin
                FBrowserDoc.Close;
        except
        end;
+       FBrowser := nil;
 end;
 function TBufferedWebBrowser.Add(const S: string): Integer;
 begin
index 3e47355..a8bc145 100644 (file)
@@ -36,7 +36,7 @@ object InputAssistForm: TInputAssistForm
         Top = 136
         Width = 75
         Height = 25
-        Caption = #32066#20102
+        Caption = #32066#20102'(&X)'
         TabOrder = 0
         OnClick = CloseButtonClick
       end
@@ -54,7 +54,7 @@ object InputAssistForm: TInputAssistForm
         Top = 40
         Width = 75
         Height = 25
-        Caption = #21066#38500
+        Caption = #21066#38500'(&D)'
         TabOrder = 2
         OnClick = DeleteButtonClick
       end
@@ -63,7 +63,7 @@ object InputAssistForm: TInputAssistForm
         Top = 8
         Width = 75
         Height = 25
-        Caption = #36861#21152
+        Caption = #36861#21152'(&A)'
         TabOrder = 3
         OnClick = AddButtonClick
       end
@@ -126,6 +126,7 @@ object InputAssistForm: TInputAssistForm
         Width = 75
         Height = 25
         Action = InsertButtonAction
+        Caption = #25407#20837'(&I)'
         TabOrder = 1
       end
     end
index 3414f7b..0d95562 100644 (file)
@@ -5,7 +5,7 @@ interface
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, ComCtrls, GikoListView, Menus, ExtCtrls, ImgList,
-  InputAssistDataModule, StdActns, ActnList;
+  InputAssistDataModule, StdActns, ActnList, GikoSystem;
 
 type
   TInputAssistForm = class(TForm)
@@ -72,14 +72,29 @@ var
 
 implementation
 
+uses Setting;
+
 
 {$R *.dfm}
 //! \83t\83H\81[\83\80\90\90¬\82Ì\83C\83x\83\93\83g
 procedure TInputAssistForm.FormCreate(Sender: TObject);
 var
+       wp: TWindowPlacement;
        i : Integer;
        column: TListColumn;
 begin
+       //\83E\83B\83\93\83h\83E\82Ì\88Ê\92u\90Ý\92è
+       wp.length := sizeof(wp);
+       wp.rcNormalPosition.Top := GikoSys.Setting.InputAssistFormTop;
+       wp.rcNormalPosition.Left := GikoSys.Setting.InputAssistFormLeft;
+
+       wp.rcNormalPosition.Bottom := GikoSys.Setting.InputAssistFormTop
+                                                                       + GikoSys.Setting.InputAssistFormHeight;
+       wp.rcNormalPosition.Right := GikoSys.Setting.InputAssistFormLeft
+                                                                       + GikoSys.Setting.InputAssistFormWidth;
+       wp.showCmd := SW_HIDE;
+       SetWindowPlacement(Handle, @wp);
+
        FSortColumn := 0;
        GikoListView1.Columns.Clear;
        column := GikoListView1.Columns.Add;
@@ -166,6 +181,10 @@ end;
 procedure TInputAssistForm.FormClose(Sender: TObject;
   var Action: TCloseAction);
 begin
+       GikoSys.Setting.InputAssistFormTop := Self.Top;
+       GikoSys.Setting.InputAssistFormLeft := Self.Left;
+       GikoSys.Setting.InputAssistFormHeight := Self.Height;
+       GikoSys.Setting.InputAssistFormWidth := Self.Width;
        //\83\\81[\83g\8fó\91Ô\82Ì\90Ý\92è
        InputAssistDM.Sorted := True;
 end;
index 32eafd8..ccf6e46 100644 (file)
@@ -422,6 +422,14 @@ type
 
                //\83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\8cã\82É\83\\81[\83g\82·\82é\82©
                FAutoSortThreadList : Boolean;
+
+               //InputAssist\83t\83H\81[\83\80\82Ì\88Ê\92u
+               FInputAssistFormLeft :Integer;
+               FInputAssistFormTop :Integer;
+               //InputAssist\83t\83H\81[\83\80\82Ì\83T\83C\83Y
+               FInputAssistFormWidth: Integer;
+               FInputAssistFormHeight: Integer;
+
                function GetMainCoolSet(Index: Integer): TCoolSet;
                function GetBoardCoolSet(Index: Integer): TCoolSet;
                function GetBrowserCoolSet(Index: Integer): TCoolSet;
@@ -739,6 +747,13 @@ type
                property MaxRecordCount : Integer read FMaxRecordCount write FMaxRecordCount;
                //! \83X\83\8c\83b\83h\88ê\97\97\83_\83E\83\93\83\8d\81[\83h\8cã\82É\83X\83\8c\83b\83h\96¼\82Å\8f¸\8f\87\83\\81[\83g\82·\82é\82©
                property AutoSortThreadList : Boolean read FAutoSortThreadList write FAutoSortThreadList;
+               //! InputAssist\83t\83H\81[\83\80\82Ì\88Ê\92u
+               property InputAssistFormLeft :Integer read FInputAssistFormLeft write FInputAssistFormLeft;
+               property InputAssistFormTop :Integer read FInputAssistFormTop write FInputAssistFormTop;
+               //! InputAssist\83t\83H\81[\83\80\82Ì\83T\83C\83Y
+               property InputAssistFormWidth: Integer read FInputAssistFormWidth write FInputAssistFormWidth;
+               property InputAssistFormHeight: Integer read FInputAssistFormHeight write FInputAssistFormHeight;
+
 end;
 
 
@@ -1352,6 +1367,12 @@ begin
                //\97\9a\97ð\82Ì\8dÅ\91å\95Û\91\8c\8f\90\94
                FMaxRecordCount := Max(ini.ReadInteger('Recode', 'Max', 100), 1);
 
+               // \93ü\97Í\83A\83V\83X\83g
+               FInputAssistFormTop := ini.ReadInteger('IAtWindowsSize', 'Top', 0);
+               FInputAssistFormLeft := ini.ReadInteger('IAtWindowsSize', 'Left', 0);
+               FInputAssistFormWidth := ini.ReadInteger('IAtWindowsSize', 'Width', 400);
+               FInputAssistFormHeight := ini.ReadInteger('IAtWindowsSize', 'Height', 460);
+
                ini.UpdateFile;
        finally
                ini.Free;
@@ -1478,6 +1499,12 @@ begin
 
                ini.WriteInteger('OptionDialog', 'TabIndex', FOptionDialogTabIndex);
 
+               // \93ü\97Í\83A\83V\83X\83g
+               ini.WriteInteger('IAtWindowsSize', 'Top', FInputAssistFormTop);
+               ini.WriteInteger('IAtWindowsSize', 'Left', FInputAssistFormLeft);
+               ini.WriteInteger('IAtWindowsSize', 'Width', FInputAssistFormWidth);
+               ini.WriteInteger('IAtWindowsSize', 'Height', FInputAssistFormHeight);
+
                //\83c\81[\83\8b\83o\81[
                ini.WriteBool('ToolBar', 'StdVisible', FStdToolBarVisible);
                ini.WriteBool('ToolBar', 'AddressVisible', FAddressBarVisible);