掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TEdgeBroWserのブックマークの実装について (ID:150652)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
EdgeBrowser はお気に入り用に別に用意する TWEB_DATA = class public TITLE: String; URL: String; ICON: String; end; //お気に入り表示 procedure TForm1.Button7Click(Sender: TObject); var I: Integer; S: TStringList; LIST: TList; DATA: TWEB_DATA; S1,S2: String; ICON: TICON; SS: String; begin SS := ExtractFilePath(ParamStr(0)) + 'IMG\'; LIST := TLIST.Create; //仮データ DATA := TWEB_DATA.Create; DATA.TITLE := 'Yahoo! JAPAN'; DATA.URL := 'https://www.yahoo.co.jp'; DATA.ICON := 'Yahoo! JAPAN.ico'; LIST.Add(DATA); DATA := TWEB_DATA.Create; DATA.TITLE := 'YouTube'; DATA.URL := 'https://www.youtube.com/'; DATA.ICON := 'YouTube.ico'; LIST.Add(DATA); S1 := 'onMouseover="this.style.backgroundColor=''#AAAAAA''" onMouseOut="this.style.backgroundColor=''#FFFFFF''" '; S := TStringList.Create; S.Add('<!DOCTYPE html>'); S.Add('<html lang="ja">'); S.Add('<head>'); S.Add('<meta charset="SHIFT-JIS">'); S.Add('<META http-equiv="Content-Script-Type" content="text/javascript">'); S.Add('<script type="text/javascript">'); S.Add('function visibility( $id )'); S.Add('{'); S.Add(' if ( document.getElementById( $id ).style.display == "none" )'); S.Add(' {'); S.Add(' document.getElementById( $id ).style.display="block";'); S.Add(' }'); S.Add(' else'); S.Add(' {'); S.Add(' document.getElementById( $id ).style.display="none";'); S.Add(' }'); S.Add('}'); S.Add('</script>'); S.Add('</head>'); S.Add(''); S.Add('<body>'); S.Add('<div style="cursor:pointer;" ' + S1 + ' onClick="visibility(''bookmark'')"><img style="width:24px; height:24px" src="' + SS + 'directory.ico">ブックマーク</div>'); //ブックマーク</h3>'); S.Add('<div id="bookmark">'); S.Add('<table style="width:100%; border-spacing:0px;">'); for I:=0 to LIST.Count -1 do begin DATA := LIST[I]; ICON := TICON.Create; S2 := ''; if FileExists('IMG\' + DATA.ICON) = True then begin S2 := '<img style="width:24px; height:24px;" src="' + SS + DATA.ICON + '">' end else begin S2 := '■'; end; S.Add('<tr ' + S1 + '><td style="width:32px;"></td><td style="width:32px">' + S2 + '</td><td ' + S1 + '><a href="' + DATA.URL + ' ">' + DATA.TITLE + '</a></td><tr>'); ICON.Free; end; S.Add('</table>'); S.Add('</div>'); S.Add('</body>'); S.Add('</html>'); for I:=0 to List.Count -1 do begin DATA := LIST[I]; DATA.Free; end; //EdgeBrowser1.NavigateToString(S.TEXT); //こっちだとイメージがブロックされる S.SaveToFile(FAV); EdgeBrowser2.Navigate(FAV); LIST.Free; S.Free; end; procedure TForm1.EdgeBrowser2NavigationStarting(Sender: TCustomEdgeBrowser; Args: TNavigationStartingEventArgs); var OLDURL: String; NEWURL: PWideChar; begin Args.ArgsInterface.Get_uri(NEWURL); OLDURL := TEdgeBrowser(SEnder).LocationURL; if OLDURL <> '' then begin if NEWURL <> '' then begin Args.ArgsInterface.Set_Cancel(1); EdgeBrowser1.Navigate(NEWURL); end; end; end; //アイコン取得 procedure TForm1.EdgeBrowser1NavigationCompleted(Sender: TCustomEdgeBrowser; IsSuccess: Boolean; WebErrorStatus: TOleEnum); var P: PWideChar; MemoryStream: TMemoryStream; ICON: TICON; TITLE: String; SS: String; begin //WEB_URL := TEdgeBrowser(SEnder).LocationURL; TITLE := TEdgeBrowser(SEnder).DocumentTitle; SS := ExtractFilePath(ParamStr(0)) + 'IMG\'; //ICON 取得 ( //<link rel=icon type=image/x-icon で設定されてい場合ソース解読かな? MemoryStream := TMemoryStream.Create; try IdHTTP1.Get(WEB_URL + '/favicon.ico',MemoryStream); if MemoryStream.Position <> 0 then begin ICON := TICON.Create; MemoryStream.Position := 0; ICON.LoadFromStream(MemoryStream); ICON.SaveToFile(SS + TITLE + '.ico'); ICON.Free; end; except end; MemoryStream.Free; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.