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
[10662] [급!!질문] ActiveX에서 백스페이스, 방향키가 일부에서 않먹습니다. 도와주세요!!!!
워커홀릭 [nightvamp] 1604 읽음    2006-04-15 18:10
아래와 같이 작성했는데요.. 그래도 일부에선 백스페이스와 방향키가 먹질 않습니다..
(제가 테스트용으로 만든 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;

+ -

관련 글 리스트
10662 [급!!질문] ActiveX에서 백스페이스, 방향키가 일부에서 않먹습니다. 도와주세요!!!! 워커홀릭 1604 2006/04/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.