Hint = #12479#12473#12463#12488#12524#12452#12395#26684#32013#12377#12427
OnExecute = StoredTaskTrayActionExecute
end
+ object AllImageLinkToClipbordAction: TAction
+ Category = #12473#12524#12483#12489
+ Caption = #12452#12513#12540#12472#12522#12531#12463'URL'#21462#24471
+ Hint = #12377#12409#12390#12398#12524#12473#12363#12425#12452#12513#12540#12472#12408#12398#12522#12531#12463'URL'#12434#12463#12522#12483#12503#12508#12540#12489#12395#12467#12500#12540#12377#12427
+ OnExecute = AllImageLinkToClipbordActionExecute
+ OnUpdate = DependActiveCntentLogActionUpdate
+ end
+ object NewImageLinkToClipBoardAction: TAction
+ Category = #12473#12524#12483#12489
+ Caption = #26032#30528#12524#12473#12452#12513#12540#12472#12522#12531#12463'URL'#21462#24471
+ Hint = #26032#30528#12524#12473#12363#12425#12452#12513#12540#12472#12408#12398#12522#12531#12463'URL'#12434#12463#12522#12483#12503#12508#12540#12489#12395#12467#12500#12540#12377#12427
+ OnExecute = NewImageLinkToClipBoardActionExecute
+ OnUpdate = DependActiveCntentLogActionUpdate
+ end
end
object ToobarImageList: TImageList
Left = 44
VKRightAction: TAction;
VKLeftAction: TAction;
StoredTaskTrayAction: TAction;
+ AllImageLinkToClipbordAction: TAction;
+ NewImageLinkToClipBoardAction: TAction;
procedure EditNGActionExecute(Sender: TObject);
procedure ReloadActionExecute(Sender: TObject);
procedure GoFowardActionExecute(Sender: TObject);
procedure StoredTaskTrayActionExecute(Sender: TObject);
procedure LeftTabSelectActionUpdate(Sender: TObject);
procedure RightmostTabSelectActionUpdate(Sender: TObject);
+ procedure NewImageLinkToClipBoardActionExecute(Sender: TObject);
+ procedure AllImageLinkToClipbordActionExecute(Sender: TObject);
private
{ Private \90é\8c¾ }
procedure ClearResFilter;
procedure ClearNameTextAllEditor();
procedure MoveURLWithHistory(URL : String);
procedure BackToHistory(item: TMoveHistoryItem);
+ function GetActiveThreadLinks : IHTMLElementCollection;
+ procedure GetImageLinkURLs(links : IHTMLElementCollection;
+ URLs : TStringList; const Start: Integer);
public
{ Public \90é\8c¾ }
procedure RepaintStatusBar;
StoredTaskTrayAction.Tag := -1;
end;
+{
+\breif \83\8a\83\93\83N\83C\83\81\81[\83W\8eæ\93¾
+\83C\83\81\81[\83W\82Í\81C*.jpg, *.jpeg, *.gif, *.png
+}
+procedure TGikoDM.AllImageLinkToClipbordActionExecute(Sender: TObject);
+var
+ links : IHTMLElementCollection;
+ urls : TStringList;
+begin
+ links := GetActiveThreadLinks;
+ if (links <> nil) then begin
+ urls := TStringList.Create;
+ try
+ GetImageLinkURLs(links, urls, 0);
+ Clipboard.SetTextBuf(urls.GetText);
+ finally
+ urls.Free;
+ end;
+ end;
+end;
+{
+\breif \90V\92\85\83\8c\83X\82Ì\83\8a\83\93\83N\83C\83\81\81[\83W\8eæ\93¾
+\83C\83\81\81[\83W\82Í\81C*.jpg, *.jpeg, *.gif, *.png
+}
+procedure TGikoDM.NewImageLinkToClipBoardActionExecute(Sender: TObject);
+var
+ links : IHTMLElementCollection;
+ urls : TStringList;
+ ThreadItem : TThreadItem;
+begin
+ ThreadItem := GikoForm.GetActiveContent;
+ links := GetActiveThreadLinks;
+ if (ThreadItem <> nil) and (links <> nil) then begin
+ urls := TStringList.Create;
+ try
+ GetImageLinkURLs(links, urls,
+ (ThreadItem.Count - ThreadItem.NewResCount + 1) );
+ Clipboard.SetTextBuf(urls.GetText);
+ finally
+ urls.Free;
+ end;
+ end;
+end;
+{
+\brief \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\82·\82×\82Ä\82Ì\83\8a\83\93\83N\82ð\8eæ\93¾\82·\82é\81B
+\return IHTMLElementCollection \83\8a\83\93\83N\82Ì\83R\83\8c\83N\83V\83\87\83\93
+}
+function TGikoDM.GetActiveThreadLinks : IHTMLElementCollection;
+var
+ browser : TWebBrowser;
+begin
+ Result := nil;
+ if (GikoForm.GetActiveContent <> nil) then begin
+ if (GikoForm.BrowserTab.Tabs.Count > 0) and
+ (GikoForm.BrowserTab.TabIndex >= 0) then begin
+ browser := TBrowserRecord(GikoForm.BrowserTab.Tabs
+ .Objects[GikoForm.BrowserTab.TabIndex]).Browser;
+ if (browser <> nil) then begin
+ try
+ Result := IHTMLDocument2(browser.Document).links;
+ except
+ Result := nil;
+ end;
+ end;
+
+ end;
+ end;
+end;
+{
+\brief \83C\83\81\81[\83W\82Ö\82Ì\83\8a\83\93\83N\82ÌURL\82ð\8eæ\93¾\82·\82é
+\param links \8eæ\93¾\82·\82é\83\8a\83\93\83N\82Ì\91S\91Ì\82Ì\83R\83\8c\83N\83V\83\87\83\93
+\param URLs \8eæ\93¾\82µ\82½URL\82Ì\95Û\91¶\90æ
+\param Start \90Ý\92è\82µ\82½\83\8c\83X\94Ô\8d\86\88È\8d~\82ð\8eæ\93¾( > 0)
+}
+procedure TGikoDM.GetImageLinkURLs(links : IHTMLElementCollection;
+ URLs : TStringList; const Start: Integer);
+var
+ index ,i : Integer;
+ item : IHTMLElement;
+ url, ext : string;
+begin
+ if (links <> nil) then begin
+ index := 0;
+ 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
+ index := StrToInt64Def(
+ Copy(url, 5, Length(url)), index + 1
+ );
+ end else begin
+ // \8aJ\8en\83\8c\83X\94Ô\8d\86\88È\8d~\82©\83`\83F\83b\83N
+ if (index >= Start) then begin
+ ext := ExtractFileExt( AnsiLowerCase(url) );
+ // jpg,jpeg,gif,png\82ð\83`\83F\83b\83N
+ if (ext = '.jpg') or (ext = '.jpeg') or
+ (ext = '.gif') or (ext = '.png') then begin
+ urls.Add(url)
+ end;
+ end;
+ end;
+ end;
+ end;
+ end;
+end;
end.