Q&A

  • ActiveX에서 백스페이스, 방향키가 일부에서 안먹습니다.
아래와 같이 작성했는데요.. 그래도 일부에선 백스페이스와 방향키가 먹질 않습니다..
(제가 테스트용으로 만든 html에선 잘 되는데요.. 업체에 넘겼는데 업체에서만 그렇다네요..
html에 프레임 또는 아이프레임등을 좀 쓴다네요.. 이거때문에 그럴수도 있을꺼라 생각되지만..
어쨋든 문제는 문제라 생각되서.. 꼭고쳐야 한다네요...에고..ㅜㅜ)

잘아시는분 도움좀 주세요..

참고로 MSDN에선..

OnActivateInPlace (TRUE, NULL);

이거 한줄이면 해결된다는데... 이걸 어떻게 델파이로 쓰는지.. ㅜㅜ

제발 도와주세요..

일은 산더미 처럼 밀렸는데.. 정말 답답합니다...

일요일도 없이 일하는데.. 에휴..




TaxTESTeditor = class(TActiveForm, IaxTESTeditor, IOleInPlaceActiveObject)
--> 이렇게 "IOleInPlaceActiveObject" 넣어줬구요..

public
   { Public declarations }
   procedure Initialize; override;
   function PreTranslateMessage(var Msg: TMsg): BOOL;
   function TranslateAccelerator(var Msg: TMsg): HRESULT; stdcall;
   function OnFrameWindowActivate(fActivate: BOOL): HResult; stdcall;
   function OnDocWindowActivate(fActivate: BOOL): HResult; stdcall;
   function ResizeBorder(const rcBorder: TRect; const uiWindow:
    IOleInPlaceUIWindow; fFrameWindow: BOOL): HResult; stdcall;
   function EnableModeless(fEnable: BOOL): HResult; stdcall;
   function GetWindow(out wnd: HWnd): HResult; stdcall;
   function ContextSensitiveHelp(fEnterMode: BOOL): HResult; stdcall;
--> 이렇게 하구요..

function axTESTeditor.PreTranslateMessage(var Msg: TMsg): BOOL;
begin
result := false;
case Msg.message of
  WM_KEYDOWN,
  WM_KEYUP:
  begin

    case Msg.wParam of // F3, F11, TAB, 방향키는 제외
      // place as many as you want such as VK_F4, VK_F12, etc.
      VK_F1:
      begin
        // 콘트롤에게 메세지를 직접 보내세요. 아니면 바로 여기서 처리하세요.
        result := true; // Tell IE we've handled these, otherwise return false!
      end;

    end;
  end;

 end; //end case
end;


function axTESTeditor.TranslateAccelerator(var msg: TMsg): HResult;
var
  Used: boolean;
begin
  // 이 키를 핸들링하고 있습니까? 또는 IE 는 그것들을 핸들링하고 있습니까?
  Used := PreTranslateMessage(Msg);
  if (Used) then
    result := S_OK // 키를 핸들링
  else
    result := S_FALSE; //Le IE handling the key!
end;

function axTESTeditor.GetWindow(out wnd: HWnd): HResult;
begin
  if self.HandleAllocated then
  begin
    wnd := testEdit.Handle;
    Result := S_OK;
  end else
    Result := E_FAIL;
end;

function axTESTeditor.OnFrameWindowActivate(fActivate: BOOL): HResult; stdcall;
begin
  Result := S_OK;
end;
function axTESTeditor.OnDocWindowActivate(fActivate: BOOL): HResult; stdcall;
begin
  Result := S_OK;
end;
function TaxPAMSeditor.ResizeBorder(const rcBorder: TRect; const uiWindow:
          IOleInPlaceUIWindow; fFrameWindow: BOOL): HResult; stdcall;
begin
  Result := S_OK;
end;
function axTESTeditor.EnableModeless(fEnable: BOOL): HResult; stdcall;
begin
  Result := S_OK;
end;
function axTESTeditor.ContextSensitiveHelp(fEnterMode: BOOL): HResult; stdcall;
begin
  Result := S_OK;
end;
0  COMMENTS