아래와 같이 작성했는데요.. 그래도 일부에선 백스페이스와 방향키가 먹질 않습니다..
(제가 테스트용으로 만든 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;