AddIDtoNGWord1Action: TAction;
ExtractSameIDAction: TAction;
ShowTabListAction: TAction;
+ DereferenceResAction: TAction;
procedure EditNGActionExecute(Sender: TObject);
procedure ReloadActionExecute(Sender: TObject);
procedure GoFowardActionExecute(Sender: TObject);
procedure AddIDtoNGWord1ActionExecute(Sender: TObject);
procedure ExtractSameIDActionExecute(Sender: TObject);
procedure ShowTabListActionExecute(Sender: TObject);
+ procedure DereferenceResActionExecute(Sender: TObject);
private
{ Private \90é\8c¾ }
procedure ClearResFilter;
// \83\8c\83X\82Ì\94Ô\8d\86\82ð\8dX\90V
if (Pos('menu:', url) > 0) then begin
index := StrToInt64Def(
- Copy(url, 5, Length(url)), index + 1
+ Copy(url, 6, Length(url)), index + 1
);
end else begin
// \8aJ\8en\83\8c\83X\94Ô\8d\86\88È\8d~\82©\83`\83F\83b\83N
GikoForm.ListView.Items.EndUpdate;
GikoForm.SetActiveList(BoardGroup.SpecialBoard);
end;
+//! \8bt\8eQ\8fÆ\82µ\82Ä\82¢\82é\83\8c\83X\82ð\92Ç\89Á\82·\82é
+procedure TGikoDM.DereferenceResActionExecute(Sender: TObject);
+var
+ i, currentNo, No : Integer;
+ links : IHTMLElementCollection;
+ threadItem : TThreadItem;
+ item : IHTMLElement;
+ url, url2 : string;
+ resNo : TStringList;
+ alreadyExist : Boolean;
+ PathRec: TPathRec;
+begin
+ No := GikoForm.KokoPopupMenu.Tag;
+ if No = 0 then Exit;
+
+ ThreadItem := GikoForm.GetActiveContent;
+ // \83A\83N\83e\83B\83u\83^\83u\82©\82ç\91S\82Ä\82Ì\83\8a\83\93\83N\82ð\8eæ\93¾\82·\82é
+ links := GetActiveThreadLinks;
+ if (ThreadItem <> nil) and (links <> nil) then begin
+ resNo := TStringList.Create;
+ try
+ currentNo := 0;
+ alreadyExist := False;
+ // \83\8a\83\93\83N\82ð\91S\82Ä\91\96\8d¸\82·\82é
+ for i := 0 to links.length - 1 do begin
+ item := links.item(i, 0) as IHTMLElement;
+ if (item <> nil) then begin
+ url := item.getAttribute('href', 0);
+ // \83\8c\83X\82Ì\94Ô\8d\86\82ð\8dX\90V
+ if (Pos('menu:', url) > 0) then begin
+ currentNo := StrToInt64Def(
+ Copy(url, 6, Length(url)), currentNo + 1
+ );
+ alreadyExist := False;
+ end else if (currentNo <> -1) and (not alreadyExist) then begin
+ // IE7\91Î\89\9e
+ if Pos('about:..', url) = 1 then begin
+ url := 'about:blank..' + Copy( url, Length('about:..')+1, Length(url) )
+ end;
+ // \8e©\95ª\82Ö\82Ì\83\8a\83\93\83N\82©\82ç\83\8c\83X\83|\83b\83v\97p\82Ì\94Ô\8d\86\8eæ\93¾
+ if Pos('about:blank..', url) = 1 then begin
+ // No \94Ô\82Ö\82Ì\83\8a\83\93\83N\82ª\82 \82ê\82Î\8eQ\8fÆ\82 \82è
+ url2 := THTMLCreate.GetRespopupURL(url, ThreadItem.URL);
+ PathRec := Gikosys.Parse2chURL2(url2);
+ if (not PathRec.FNoParam) then begin
+ Gikosys.GetPopupResNumber(url2,PathRec.FSt,PathRec.FTo);
+ end;
+ // \91Î\8fÛ\83\8c\83X\82à\82µ\82\82Í\82»\82ê\82ð\8aÜ\82Þ\82È\82ç\8eQ\8fÆ\82 \82è\82Æ\82·\82é
+ if (PathRec.FSt = No) or
+ ((PathRec.FSt <= No) and (PathRec.FTo >= No)) then begin
+ alreadyExist := True;
+ resNo.Add(IntToStr(currentNo));
+ end;
+ end;
+ end;
+ end;
+ end;
+ // \96³\90§\8cÀ\82È\82Ì\82Å-1\8cÅ\92è
+ GikoForm.ActiveContent.IDAnchorPopup(
+ GikoSys.CreateResAnchor(resNo, ThreadItem, -1));
+ finally
+ resNo.Clear;
+ resNo.Free;
+ end;
+ end;
+end;
+
end.
procedure GetPopupResNumber(URL : string; var stRes, endRes : Int64);
property Bayesian : TGikoBayesian read FBayesian write FBayesian;
- function CreateSameIDResAnchor(var Numbers: TStringList; ThreadItem: TThreadItem; limited: Integer):string;
+ function CreateResAnchor(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 GetResID(AIDNum: Integer; ThreadItem: TThreadItem): String;
\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.CreateSameIDResAnchor(
+function TGikoSys.CreateResAnchor(
var Numbers: TStringList; ThreadItem: TThreadItem;
limited: Integer):string;
var