Dev/Delphi

웹페이지(html) 메뉴이벤트 델파이와 연동하기

슬픈윈드 2012. 2. 23. 16:26

델파이의 web browser 컨트롤에 오픈한.. HTML 웹 페이지 내의 버튼이벤트로

 

델파이의 이벤트를 처리할수 있는 방법이 있다..

 

약간의 꽁수 인듯하나.. 괜찮은 방법이다.

 

기본구조는  HTML  웹페이지 내에서 메뉴 이벤트가 일어날때 자바 스크립트를 이용해 브라우져의 상태바(Status Bar) 를 변경시키면 델파이에서 그 상태바를 읽어 이벤트를 처리하는 방법이다.. 

 기본구조는 상당히 심플하다.

 

간단한 기본 구조 처럼  코드 처리 또한.. 간단하다...

 

 1. HTML 에서의 상태바 처리

 

    <script language="javascript">
      function closewin(num) 
     {
         window.status='close';
         window.status='';
         window.close();
     }
    </script>

     .....

     ...

    <input type=image src="img/c_btn.gif" style=cursor:hand; border=0 onclick="closewin()">

 

 2. 델파이 에서의  브라우져 컨트롤 상태바 변경 처리

     WebBrowser 컨트롤 이벤트중  'wbStatusTextChange ' 이벤트가 있다..

     브라우져 컨트롤의 상태바의 Text가 변경되면 이벤트가 실행된다..

     이 이벤트 프로시져 내에 다음과 같이 처리 한다.

 

procedure TRegistDlg.wbStatusTextChange(Sender: TObject;
  const Text: WideString);
var sItem : string;
begin
  sItem := Text;
  if sItem = 'close' then
  begin
    close;
  end;
end;

 

   Text는 브라우져 컨트롤의 상태바의 Text 를 넘겨준다.  따라서

   Text의 내용에 따라 이벤트 처리를 해주면 웹 브라우져의 메뉴 버튼 이벤트를

   구분하여 처리해줄수 있다.

출처 : http://blog.naver.com/webmcr/50011429949