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
[9926] [질문]webbrowser에서 엔터키가 안먹어서 답변을 적용하여 아래와 같이 했는데 에러가?
신철우 [schw] 1084 읽음    2004-11-24 14:36
아래 [소스에서] undeclared indentifier: 'FWebHandle'라고 나와서
이 Line을 막았더니
object or class type required
라고 나오면서 실행도 되지 않네요.

답변 좀 부탁드립니다.

[소스]
unit HTraining_U;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, SpeedBar, StdCtrls, ExtCtrls, ComCtrls, DB, MemDS, DBAccess,
  MSAccess, Grids, DBGrids, ToolEdit, DBCtrls, Mask, Buttons, Label3dB,
  BaseGrid, AdvGrid, CurrEdit, DBTables, RXCtrls, Printers, RxGIF, Psock,
  OleCtrls, SHDocVw;

type
  THTraining_F = class(TForm)
    WebBrowser1: TWebBrowser;

    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure MessageLoop(var Msg:TMsg; var Handled:Boolean);

  private
    { Private declarations }

  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(WebBrowser.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(WebBrowser.Application);
          if Dispatch <> Nil then
          begin
            Dispatch.QueryInterface(IID_IOleInPlaceActiveObject, iOIPAO);
            if iOIPAO <> Nil then
              FOleInPlaceActiveObject := iOIPAO;
          end;
        end;
  end else Handled:= False;
end;

// FORM CREATE시 하는 작업들..
procedure THTraining_F.FormCreate(Sender: TObject);
begin
  self.Left := 125; self.top := 150;

  Application.OnMessage:= MessageLoop;

  WebBrowser1.Navigate('http://www.amisnet.co.kr');
end;

// Form Close시에 하는 것들.
procedure THTraining_F.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

end.

+ -

관련 글 리스트
9926 [질문]webbrowser에서 엔터키가 안먹어서 답변을 적용하여 아래와 같이 했는데 에러가? 신철우 1084 2004/11/24
9931     Re:[질문]webbrowser에서 엔터키가 안먹어서 답변을 적용하여 아래와 같이 했는데 에러가? 류종택 1681 2004/11/28
9938             Re:[재질문]webbrowser에서 엔터키가 안먹어서 답변을 적용하여 아래와 같이 했는데 에러가? 류종택 2382 2004/11/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.