Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[9965] Re:[재질문]류종택님-webbrowser 엔터키문제로 한달내내 머리가 지끈......
류종택 [ryujt] 2769 읽음    2004-12-10 17:42
델파이 폴더 밑에 Source 폴더에서 OLE2.pas를 찾아보세요.
그 파일을 Lib 폴더에 복사하시면 됩니다.

신철우 님이 쓰신 글 :
: 보내주신 소스로 아래와 같이 만들었는데도
: [Fatal Error]:File not found 'OLE2.dcu'라고 나오면서 안되네요.
: 그래서 OLE2를 없애면
: [private]
:     FOleInPlaceActiveObject: IOleInPlaceActiveObject;
: 에서 에러나고......
:
: component에 추가해야 할 것이 없는지요?, 좀 도와주세요.
: 부탁합니다.
:
: [소스]
: unit HTraining_U;
:
: interface
:
: uses
:   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
:   Dialogs, StdCtrls, ExtCtrls, ComCtrls, DB, MemDS, DBAccess,
:   MSAccess, DBGrids, ToolEdit, DBCtrls, Buttons, Label3dB,
:   CurrEdit, DBTables, RXCtrls, Printers, RxGIF, Psock,
:   OleCtrls, SHDocVw, OLE2;
:
: type
:   THTraining_F = class(TForm)
:     WebBrowser1: TWebBrowser;
:
:     procedure FormCreate(Sender: TObject);
:     procedure FormClose(Sender: TObject; var Action: TCloseAction);
:     procedure WebBrowser1BeforeNavigate2(Sender: TObject;
:       const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
:       Headers: OleVariant; var Cancel: WordBool);
:     procedure WebBrowser1NavigateComplete2(Sender: TObject;
:       const pDisp: IDispatch; var URL: OleVariant);
:
:   private
:     { Private declarations }
:
:     FWebHandle : hwnd;
:     FOleInPlaceActiveObject: IOleInPlaceActiveObject;
:     Procedure MessageLoop(var Msg:TMsg; var Handled:Boolean);
:
:   public
:     { Public declarations }
:
:   end;
:
: var
:   HTraining_F: THTraining_F;
:
: implementation
:
: uses Common_U, Main_U;
:
: {$R *.dfm}
:
: procedure THTraining_F.MessageLoop(var Msg: TMsg; var Handled: Boolean);
: const
:   DialogKeys : Set of Byte = [VK_RETURN];
:   MSJVMClassName = 'MSAWT_Comp_Class';  // for Java Applets
: var
:  iOIPAO   : IOleInPlaceActiveObject;
:  Dispatch : IDispatch;
:  Str      : String;
: begin
:   // WebBrowser의 도큐멘트 표시 부분의 핸들이 아닌 경우에는 무시
:   if Msg.hwnd <> FWebHandle then Exit;
:
:   if ((Msg.Message = WM_KEYDOWN) or (Msg.Message = WM_KEYUP)) and (Msg.wParam in DialogKeys) then
:   begin
:     Handled:= IsDialogMessage(WebBrowser1.Handle, msg) = True;
:     SetLength(Str, MAX_PATH);
:     GetClassName(Msg.hwnd, PChar(Str), MAX_PATH);
:     SetLength (Str, StrLen (PChar(Str)));
:     if (Msg.wParam = VK_DELETE) and (Str = MSJVMClassName) then
:     else
:       if Handled then
:         if FOleInPlaceActiveObject <> Nil then
:           FOleInPlaceActiveObject.TranslateAccelerator(Msg)
:         else
:         begin
:           Dispatch := IDispatch(WebBrowser1.Application);
:           if Dispatch <> Nil then
:           begin
:             Dispatch.QueryInterface(IID_IOleInPlaceActiveObject, iOIPAO);
:             if iOIPAO <> Nil then
:               FOleInPlaceActiveObject := iOIPAO;
:           end;
:         end;
:   end else Handled:= False;
: end;
:
: procedure THTraining_F.FormCreate(Sender: TObject);
: begin
:   self.Left := 125; self.top := 150;
:
:   gp_sysdb_date();
:
:   FWebHandle := 0;
:   Application.OnMessage:= MessageLoop;
:   WebBrowser1.Navigate('http://www.irumi.ac/intro_update.php?ams_id=' + IntToStr(gv_ams_id));
: end;
:
: procedure THTraining_F.FormClose(Sender: TObject; var Action: TCloseAction);
: begin
:   Action := caFree;
: end;
:
: procedure THTraining_F.WebBrowser1BeforeNavigate2(Sender: TObject;
:   const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
:   Headers: OleVariant; var Cancel: WordBool);
: begin
: //
: end;
:
: procedure THTraining_F.WebBrowser1NavigateComplete2(Sender: TObject;
:   const pDisp: IDispatch; var URL: OleVariant);
: begin
:   if FWebHandle = 0 then Begin
:     FWebHandle:= FindWindowEx(WebBrowser1.Handle, 0, 'Shell DocObject View', Nil);
:     FWebHandle:= FindWindowEx(FWebHandle, 0, 'Internet Explorer_Server', Nil);
:   end;
: end;
:
: Initialization
:   OleInitialize(Nil);
:
: Finalization
:   OleUninitialize;
:
: end.

+ -

관련 글 리스트
9964 [재질문]류종택님-webbrowser 엔터키문제로 한달내내 머리가 지끈...... 신철우 1676 2004/12/10
9965     Re:[재질문]류종택님-webbrowser 엔터키문제로 한달내내 머리가 지끈...... 류종택 2769 2004/12/10
9968         Re:Re:[재질문]류종택님-감사합니다. 신철우 1150 2004/12/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.