델파이에서 TWebBrowser를 이용해 인터넷 페이지를 다음과 같이 띄우면
WebBrowser1.Navigate('http://www.sjworks.net');
바로 브라우저가 활성화가 되지 않아, 마우스의 휠로 바로 스크롤을 조작할 수 없다.
(일부 페이지 소스내 활성화 스크립트가 있는 것 제외)
쉽게 생각할 수 있는 방안이 다음과 같을텐데
WebBrowser1.Navigate('http://www.sjworks.net');
WebBrowser1.SetFocus;
이것은 잘못된 방법으로 원하는데로 동작하지 않을 것이다.
브라우저를 제대로 활성화 할려면 TWebBrowser 컴포넌트가 아닌 브라우저의 Document 객체를 활성화 해야한다.
Document객체는 다음과 같이 활성화 시킬 수 있다.
WebBrowser1.OleObject.Document.Focus();
이를 제대로 활용한 예제
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.sjworks.net');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://calender.daum.net/');
end;
procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
WebBrowser1.OleObject.Document.Focus();
end;
범하기 쉬운 실수
WebBrowser1.Navigate('http://www.sjworks.net');
WebBrowser1.OleObject.Document.Focus();
Navigate를 하면 페이지 로딩이 시작되는데 되기도 전에 Document에대한 호출하는 과정에서 오류가 발생하게 된다.
'개발질 > 델파이(Delphi)' 카테고리의 다른 글
탐색기(Explorer.exe) 실행시 옵션 주기 (2) | 2008.09.30 |
---|