본문 바로가기
Delphi, RadStudio

[개발/Delphi] TWebbrowser 의 찾는 문자열에 형광팬 효과 주기

by SB리치퍼슨 2011. 12. 20.
[Delphi] TWebbrowser 의 찾는 문자열에 형광팬 효과 주기   델파이 
2009/11/04 17:40
http://blog.naver.com/yagyu82/92553070
uses 절에는 MsHTML 을 추가합니다. 그리고 함수는 다음과 같습니다.

var
  tr: IHTMLTxtRange;
begin
  tr := ((WebBrowser.Document as IHTMLDocument2).body 
as IHTMLBodyElement).createTextRange;

while tr.findText('찾는 문자열', 1, 0) do
  begin
    tr.pasteHTML('<span style="background-color: Lime; font-weight: bolder; font-size: 30">' 
+ tr.htmlText + '</span>');

    tr.scrollIntoView(True);
  end;
end;

즉 tr 에 TWebbrowser 내부의 로딩된 도큐먼트를 IHTMLDocument 2로 반환해서 해당 html 의 body 테그에 해당하는 부분, 즉, 본문 내용을 저장합니다.

이후 while 문으로 tr 의 findText 함수로 문자열을 검색합니다.

tr 의 htmlText 함수로 해당 문자열을 알수 있으며 pasteHTML 로 앞 뒤에 형광팬 효과를 위한 태그를 추가합니다.

tr.scrollIntoView 는 해당 위치로 자동 스크롤 하는 명령입니다.

즉, 형광효과란, 해당 문자열을 찾아서 문서에 임의의 테그를 추가하여 문서를 변화시키는 방법입니다.

당연히 해당 테그를 수정하면 사이즈, 배경색, 기울임 효과등도 추가할 수 있습니다.

다시 원 문서로 돌리고 싶으시다면 Webbrowser.ReFlesh() 해주세요

당연히 원래 문서를 재 로딩하고, 효과는 취소됩니다.

이 코드를 이용하면 익스플로러 툴바 중 알툴바의 형광팬 효과와 똑같이 구현할 수 있습니다


반응형

댓글