doc : IHTMLDocument2;
FOleInPlaceActiveObject: IOleInPlaceActiveObject;
p : TPoint;
- AID: string;
- stlist : TStringList;
- i, count: Integer;
- body : String;
- limited : Integer;
+ AID, body: string;
+ stlist, numbers : TStringList;
+ i, limited : Integer;
begin
result := true;
if not Assigned(FActiveContent) then
stList.Free;
end;
end;
-
- count := GikoSys.GetSameIDResCount(AID, FActiveContent.Thread);
- limited := LIMIT;
- if not (GikoSys.Setting.LimitResCountMessage) then begin
- limited := -1;
- end else if (count > LIMIT) then begin
- if (GikoUtil.MsgBox(Handle,
- IntToStr(LIMIT) + '\8cÂ\88È\8fã\82 \82è\82Ü\82·\82ª\81A\82·\82×\82Ä\95\\8e¦\82µ\82Ü\82·\82©\81H',
- 'ID\83|\83b\83v\83A\83b\83v\8cx\8d\90',
- MB_YESNO or MB_ICONQUESTION) = ID_YES) then begin
- limited := -1;
- end
- end;
-
- body := GikoSys.GetSameIDResAnchor(AID, FActiveContent.Thread, limited);
- FActiveContent.IDAnchorPopup(body);
+ numbers := TStringList.Create;
+ try
+
+ GikoSys.GetSameIDRes(AID, FActiveContent.Thread, numbers);
+ limited := LIMIT;
+ if not (GikoSys.Setting.LimitResCountMessage) then begin
+ limited := -1;
+ end else if (numbers.Count > LIMIT) then begin
+ if (GikoUtil.MsgBox(Handle,
+ IntToStr(LIMIT) + '\8cÂ\88È\8fã\82 \82è\82Ü\82·\82ª\81A\82·\82×\82Ä\95\\8e¦\82µ\82Ü\82·\82©\81H',
+ 'ID\83|\83b\83v\83A\83b\83v\8cx\8d\90',
+ MB_YESNO or MB_ICONQUESTION) = ID_YES) then begin
+ limited := -1;
+ end
+ end;
+ body := GikoSys.CreateSameIDResAnchor(numbers, FActiveContent.Thread, limited);
+ FActiveContent.IDAnchorPopup(body);
+ finally
+ numbers.Free;
+ end;
end;
except
end;
LIMIT = 20;
var
ThreadItem : TThreadItem;
- No, count: Integer;
+ No : Integer;
body : string;
limited: Integer;
+ numbers : TStringList;
begin
No := GikoForm.KokoPopupMenu.Tag;
if No = 0 then Exit;
ThreadItem := GikoForm.GetActiveContent(True);
if ThreadItem = nil then Exit;
- count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
- limited := LIMIT;
- if not (GikoSys.Setting.LimitResCountMessage) then begin
- limited := -1;
- end else if count > LIMIT then begin
- if ( GikoUtil.MsgBox(GikoForm.Handle,
- IntToStr(LIMIT) + '\8cÂ\88È\8fã\82 \82è\82Ü\82·\82ª\81A\82·\82×\82Ä\95\\8e¦\82µ\82Ü\82·\82©\81H',
- 'ID\83|\83b\83v\83A\83b\83v\8cx\8d\90',
- MB_YESNO or MB_ICONQUESTION) = ID_YES ) then begin
+ numbers := TStringList.Create;
+ try
+ GikoSys.GetSameIDRes(No, GikoForm.ActiveContent.Thread, numbers);
+ limited := LIMIT;
+ if not (GikoSys.Setting.LimitResCountMessage) then begin
limited := -1;
+ end else if numbers.Count > LIMIT then begin
+ if ( GikoUtil.MsgBox(GikoForm.Handle,
+ IntToStr(LIMIT) + '\8cÂ\88È\8fã\82 \82è\82Ü\82·\82ª\81A\82·\82×\82Ä\95\\8e¦\82µ\82Ü\82·\82©\81H',
+ 'ID\83|\83b\83v\83A\83b\83v\8cx\8d\90',
+ MB_YESNO or MB_ICONQUESTION) = ID_YES ) then begin
+ limited := -1;
+ end;
end;
- end;
- body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
- GikoForm.ActiveContent.IDAnchorPopup(body);
+ body := GikoSys.CreateSameIDResAnchor(numbers, ThreadItem, limited);
+ GikoForm.ActiveContent.IDAnchorPopup(body);
+ finally
+ numbers.Free;
+ end;
end;
// *************************************************************************
//! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\81@\81i\92Ê\8fí\81j
procedure GetPopupResNumber(URL : string; var stRes, endRes : Int64);
property Bayesian : TGikoBayesian read FBayesian write FBayesian;
- function GetSameIDResAnchor(const AID : string; ThreadItem: TThreadItem; limited: Integer):string; overload;
- function GetSameIDResAnchor(AIDNum : Integer; ThreadItem: TThreadItem; limited: Integer):string; overload;
+ function CreateSameIDResAnchor(var Numbers: TStringList; ThreadItem: TThreadItem; limited: Integer):string;
procedure GetSameIDRes(const AID : string; ThreadItem: TThreadItem;var body: TStringList); overload;
procedure GetSameIDRes(AIDNum : Integer; ThreadItem: TThreadItem;var body: TStringList); overload;
- function GetSameIDResCount(const AID : string; ThreadItem: TThreadItem):Integer; overload;
- function GetSameIDResCount(AIDNum : Integer; ThreadItem: TThreadItem):Integer; overload;
function GetResID(AIDNum: Integer; ThreadItem: TThreadItem): String;
//! \92P\8cê\89ð\90Í
procedure SpamCountWord( const text : string; wordCount : TWordCount );
begin
Result := Setting.GetSambaFileName;
end;
-
{!
-\brief \93¯\82¶\93\8a\8de ID \82ð\8e\9d\82Â\83\8c\83X\82ð\83A\83\93\83J\81[\82É\82µ\82Ä\97ñ\8b\93
-\param AID \8cÂ\90l\82ð\93Á\92è\82·\82é\93\8a\8de ID
+\brief \97ñ\8b\93\82³\82ê\82½\83\8c\83X\94Ô\8d\86\82Ö\82Ì\83A\83\93\83J\81[\97pHTML\8dì\90¬
+\param Numbers \97ñ\8b\93\82³\82ê\82½\83\8c\83X\94Ô\8d\86
\param ThreadItem \97ñ\8b\93\82·\82é\83X\83\8c\83b\83h
\param limited \97ñ\8b\93\82·\82é\90\94\82ð\90§\8cÀ\82·\82é\82È\82ç1\88È\8fã
\return \97ñ\8b\93\82³\82ê\82½\83\8c\83X\83A\83\93\83J\81[
}
-function TGikoSys.GetSameIDResAnchor(
- const AID : string; ThreadItem: TThreadItem;
+function TGikoSys.CreateSameIDResAnchor(
+ var Numbers: TStringList; ThreadItem: TThreadItem;
limited: Integer):string;
var
i: integer;
- body: TStringList;
Res: TResRec;
ResLink : TResLinkRec;
begin
Res.FBody := '';
Res.FType := glt2chNew;
- Result := '';
- if (not IsNoValidID(AID)) and
- (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
- body := TStringList.Create;
- try
- GetSameIDRes(AID, ThreadItem, body);
- if (limited > 0) and (body.Count > limited) then begin
- for i := body.Count - limited to body.Count - 1 do begin
- Res.FBody := Res.FBody + '>' + body[i] + ' ';
- end;
- end else begin
- for i := 0 to body.Count - 1 do begin
- Res.FBody := Res.FBody + '>' + body[i] + ' ';
- end;
- end;
- finally
- body.Free;
- end;
+ Result := '';
+ if (Numbers <> nil) and (Numbers.Count > 0) then begin
+ if (limited > 0) and (Numbers.Count > limited) then begin
+ for i := Numbers.Count - limited to Numbers.Count - 1 do begin
+ Res.FBody := Res.FBody + '>' + Numbers[i] + ' ';
+ end;
+ end else begin
+ for i := 0 to Numbers.Count - 1 do begin
+ Res.FBody := Res.FBody + '>' + Numbers[i] + ' ';
+ end;
+ end;
ResLink.FBbs := ThreadItem.ParentBoard.BBSID;
ResLink.FKey := ChangeFileExt(ThreadItem.FileName, '');
HTMLCreater.ConvRes(@Res, @ResLink, false);
Result := Res.FBody;
- end;
+ end;
end;
{!
ReadList: TStringList;
Res: TResRec;
boardPlugIn : TBoardPlugIn;
+
+ procedure CheckSameID(const AID:String; const Target: String; no: Integer);
+ var
+ pos: Integer;
+ begin
+ pos := AnsiPos('id:', LowerCase(Target));
+ if (pos > 0) then begin
+ if(AnsiPos(AID, Copy(Target, pos-1, Length(Target))) > 0) then begin
+ body.Add(IntToStr(no));
+ end;
+ end else begin
+ if(AnsiPos(AID, Target) > 0) then begin
+ body.Add(IntToStr(no));
+ end;
+ end;
+ end;
begin
if (not IsNoValidID(AID)) and
(ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
for i := 0 to threadItem.Count - 1 do begin
// \83\8c\83X
THTMLCreate.DivideStrLine(boardPlugIn.GetDat(DWORD( threadItem ), i + 1), @Res);
- if(AnsiPos(AID, Res.FDateTime) > 0) then begin
- body.Add(IntToStr(i+1));
- end;
+ CheckSameID(AID, Res.FDateTime, i+1);
end;
end else begin
ReadList := TStringList.Create;
ReadList.LoadFromFile(ThreadItem.GetThreadFileName);
for i := 0 to ReadList.Count - 1 do begin
THTMLCreate.DivideStrLine(ReadList[i], @Res);
- if AnsiPos(AID, Res.FDateTime) > 0 then begin
- body.Add(IntToStr(i+1));
- end;
+ CheckSameID(AID, Res.FDateTime, i+1);
end;
finally
ReadList.Free;
\brief \93¯\82¶\93\8a\8de ID \82ð\8e\9d\82Â\83\8c\83X\82ð\97ñ\8b\93
\param AIDNum \8cÂ\90l\82ð\93Á\92è\82·\82é\93\8a\8de ID
\param ThreadItem \97ñ\8b\93\82·\82é\83X\83\8c\83b\83h
-\param limited \97ñ\8b\93\82·\82é\90\94\82ð\90§\8cÀ\82·\82é\82È\82ç1\88È\8fã
-\return
-}
-function TGikoSys.GetSameIDResAnchor(AIDNum : Integer;
- ThreadItem: TThreadItem;
- limited: Integer):string;
-var
- i: integer;
- body: TStringList;
- Res: TResRec;
- ResLink : TResLinkRec;
-begin
- // body\88È\8aO\82Í\8eg\97p\82µ\82È\82¢\82Ì\82Å\8f\89\8aú\89»\82µ\82È\82¢
- Res.FBody := '';
- Res.FType := glt2chNew;
-
- Result := '';
- if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
- body := TStringList.Create;
- try
- GetSameIDRes(AIDNum, ThreadItem, body);
- if (limited > 0) and ( body.Count > limited) then begin
- for i := body.Count - 20 to body.Count - 1 do begin
- Res.FBody := Res.FBody + '>' + body[i] + ' ';
- end;
- end else begin
- for i := 0 to body.Count - 1 do begin
- Res.FBody := Res.FBody + '>' + body[i] + ' ';
- end;
- end;
- finally
- body.Free;
- end;
- ResLink.FBbs := ThreadItem.ParentBoard.BBSID;
- ResLink.FKey := ChangeFileExt(ThreadItem.FileName, '');
- HTMLCreater.ConvRes(@Res, @ResLink, false);
- Result := Res.FBody;
- end;
-end;
-
-{!
-\brief \93¯\82¶\93\8a\8de ID \82ð\8e\9d\82Â\83\8c\83X\82ð\97ñ\8b\93
-\param AIDNum \8cÂ\90l\82ð\93Á\92è\82·\82é\93\8a\8de ID
-\param ThreadItem \97ñ\8b\93\82·\82é\83X\83\8c\83b\83h
\param body OUT:\97ñ\8b\93\82³\82ê\82½\83\8c\83X\94Ô\8d\86\82ª\95Ô\82é
}
procedure TGikoSys.GetSameIDRes(AIDNum : Integer; ThreadItem: TThreadItem;var body: TStringList);
end;
end;
end;
-{!
-\brief \93¯\82¶\93\8a\8de ID \82ð\8e\9d\82Â\83\8c\83X\82ð\83J\83E\83\93\83g
-\param AID \8cÂ\90l\82ð\93Á\92è\82·\82é\93\8a\8de ID
-\param ThreadItem \97ñ\8b\93\82·\82é\83X\83\8c\83b\83h
-\return \93¯\82¶ ID \82ð\8e\9d\82Â\83\8c\83X\82Ì\90\94
-}
-function TGikoSys.GetSameIDResCount(const AID : string; ThreadItem: TThreadItem):Integer;
-var
- body: TStringList;
-begin
- Result := 0;
- if (not IsNoValidID(AID))
- and (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
- body := TStringList.Create;
- try
- GetSameIDRes(AID, ThreadItem, body);
- Result := body.Count;
- finally
- body.Free;
- end;
- end;
-
-end;
-
-{!
-\brief \93¯\82¶\93\8a\8de ID \82ð\8e\9d\82Â\83\8c\83X\82ð\83J\83E\83\93\83g
-\param AIDNum \8cÂ\90l\82ð\93Á\92è\82·\82é\93\8a\8de ID
-\param ThreadItem \97ñ\8b\93\82·\82é\83X\83\8c\83b\83h
-\return \93¯\82¶ ID \82ð\8e\9d\82Â\83\8c\83X\82Ì\90\94
-}
-function TGikoSys.GetSameIDResCount(AIDNum : Integer; ThreadItem: TThreadItem):Integer;
-var
- body: TStringList;
-begin
- Result := 0;
- if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
- body := TStringList.Create;
- try
- GetSameIDRes(AIDNum, ThreadItem, body);
- Result := body.Count;
- finally
- body.Free;
- end;
- end;
-end;
{!
\brief \8e\9e\8d\8f\82ð\8e¦\82·\95¶\8e\9a\97ñ\82Å\82Í\96³\82¢\82©\82Ç\82¤\82©
end;
procedure TGikoSys.ShowRefCount(msg: String; unk: IUnknown);
+{$IFDEF DEBUG}
var
count : integer;
+{$ENDIF}
begin
if not Assigned(unk) then
Exit;