Q&A

  • dhtmledit 컴포넌트를 사용했는데 키가 않먹어요
안녕하세요

제가 dhtmledit 컴포넌트를 사용하여 activex를 만들었습니다.
이 activex는 웹으로 올려서 브라우저에서 사용하게되는데

dhtmledit안에서 html를 편집하다 보면
방향전환 커서가 먹지 않습니다.

엔터키는 먹는데요

아래, 위, 왼,오른쪽으로 가는 방향키가 먹지 않습니다.
혹시 아시는분...알려주세요


미리 감사드립니다.
1  COMMENTS
  • Profile
    서기원 2004.10.27 20:37
    저도 한델에서 답변을 찾다가 답변이 없어서 고생하던 중
    yahoo dhtml group에서 답변을 찾았습니다.
    혹시 저처럼 고생하시는 분이 계실까봐 올려놓습니다.

    다음과 같이 IOleInPlaceActiveObject를 추가하고,
      TMyActiveXForm = class(TActiveForm, ISendEmail, IPersistPropertyBag,  IOleInPlaceActiveObject)

    private 영역에  다음변수 추가.
      bControl : Boolean;

    protected 영역에
        function PreTranslateMessage(var Msg: TMsg): BOOL; //Not part of
        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;
    를 추가합니다.

    Ctrl+Shift+G를 누르고
    함수중에 PreTranslateMessage와 GetWindow를 다음과 같이 구현하고
    나머지 함수는 Result := S_OK; 한줄 추가했습니다.

    function TMyActiveXForm.PreTranslateMessage(var Msg: TMsg): BOOL;
    var
      key: Word;
      ch: integer;
      c:char;
    begin
      result := false;
      case Msg.message of
        WM_KEYDOWN,
        WM_KEYUP:
        begin
          case Msg.wParam of
            VK_F1,
            VK_F2,
            VK_F3,
            VK_F4,
            VK_F5,
            VK_F6,
            VK_F7,
            VK_F8,
            VK_F9,
            VK_F10,
            VK_F11,
            VK_F12,
            VK_DELETE,
            VK_CONTROL,
            VK_TAB:
            begin
              //Send this message to our control, or handle it directly here.        
              SendMessage(Self.Handle, Msg.message, Msg.wParam,
              Msg.lParam);
              SendMessage(DhtmlBody.Handle, Msg.message, Msg.wParam,
              Msg.lParam);
              result := true;
              if VK_CONTROL = Msg.wParam then bControl := true else
              bControl := false;  //Tell IE we've handled these, otherwise return false!
            end;
            67, 86: // CTRL-C e CTRL-V respectivamente
              if bControl then
              begin
              SendMessage(Self.Handle, Msg.message, Msg.wParam,
              Msg.lParam);
              SendMessage(DhtmlBody.Handle, Msg.message,
              Msg.wParam, Msg.lParam);
              result := true;
              end;
          end; //end case
        end;
      end; //end case
    end;


    function TMyActiveXForm.GetWindow(out wnd: HWnd): HResult;
    begin
    //FWinControl.HandleAllocated is YOUR control, your
    //name might be different..

      if ActiveOleControl.HandleAllocated then
      begin
        wnd := ActiveOleControl.Handle;
        Result := S_OK;
      end else
        Result := E_FAIL;
    end;

    수고하세요~

    -------------- 원 문 보 기 --------------

    >안녕하세요
    >
    >제가 dhtmledit 컴포넌트를 사용하여 activex를 만들었습니다.
    >이 activex는 웹으로 올려서 브라우저에서 사용하게되는데
    >
    >dhtmledit안에서 html를 편집하다 보면
    >방향전환 커서가 먹지 않습니다.
    >
    >엔터키는 먹는데요
    >
    >아래, 위, 왼,오른쪽으로 가는 방향키가 먹지 않습니다.
    >혹시 아시는분...알려주세요
    >
    >
    >미리 감사드립니다.
    • 조승식
    • 2002.03.21 08:06
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 공성환
      2002.03.21 10:52
      어떤백업을 예기하시는지... 제일쉬은게 시스템계정으로 export 받는게 제일편할것같은데...
    • 김경록
      2002.03.21 19:05
      만약, 전체 백업을 하신다면, 또한 schema를 변경하시지 않는다면, 꾸냥.. 데이파베이스 파일 자체를 백...
    • 조승식
      2002.03.24 07:07
      감사합니다.
    • 델.초
    • 2002.03.21 07:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 공성환
      2002.03.21 07:26
      ini파일이나 레지스터에 기억시켜서 사용하는걸로 알고있습니다... 물론 db에 등록후 처리해도 되지만... ...
    • 정규성
    • 2002.03.21 07:12
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김영철
      2002.03.21 20:49
      벌써 해결 하셨겠지만 Sql.Add('Order by :S_NUM         ...
    • KYH
      2002.03.21 08:07
        With DM.Query1 Do   Begin     Sql.Clear;  &nbs...
    • 공성환
      2002.03.21 07:24
      open하기전에.. query1.sql.SaveToFile('c:tempquery.txt'); 이런식으로 먼저 쿼리문을 획득하여 sqlplus...
    • 홍성락
      2002.03.21 20:26
      hsr/////////////////////////////////////////////////////////////////// 아래 예제는 버튼1은 os버젼...
    • 강환춘
    • 2002.03.21 05:42
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이낭하
      2002.03.21 08:53
      말글대로 입니다.. 아마 테이블 컴포 쓰면서 생긴거 같은데.. 맞나염? 만약 맞다면 DB에 작업(?)...
    • 강환춘
      2002.03.21 18:26
      답변 해주신글 잘 봤습니다. 쿼리 콤포넌트를 썻습니다. 중간에 에디트나 인서트 하는 내용도 안...
    • 권대웅
      2002.03.21 19:15
      안녕하세요! 제가 보기에는    Sender.Value := qrySub.FieldByName('se_nm1').AsString; ...
    • 오정훈
    • 2002.03.21 03:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.03.21 05:13
      hsr////////////////////////////////////////////////////// 아래처럼해보세요 procedure TForm1.Memo1K...
    • 김태혁
    • 2002.03.21 03:32
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 윤신호
      2002.03.21 03:46
      아래와 같이 함 해보시면 어떨려나... procedure TForm1.Button4Click(Sender: TObject); var sum, cur...
    • 김태혁
      2002.03.22 21:26
      감사합니다. 잘 되네요! 그리고 이걸로 인해 한가지 더 해결을 했습니다. 클리어안해주고 한번 계산을 ...
    • 김 현진
    • 2002.03.21 02:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 염상철
    • 2002.03.21 02:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김규한
      2002.03.21 03:37
      설마 그렇기야 하겠어요? ㅡ.ㅡ; 델5에서 했던 푸로그램은 델6에서 재컴파일해도 잘 돌아갑니다. 델6이 ...
    • 임병태
    • 2002.03.21 02:27
    • 1 COMMENTS
    • /
    • 1 LIKES
    • 서기원
      2004.10.27 20:37
      저도 한델에서 답변을 찾다가 답변이 없어서 고생하던 중 yahoo dhtml group에서 답변을 찾았습니다. 혹...
    • 김태혁
    • 2002.03.21 00:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김규한
      2002.03.21 03:47
      http://delphi.icm.edu.pl/ <= 델파이 슈퍼페이지. http://www.torry.net/index.htm <= 토리 페이지...
    • 김종운
    • 2002.03.21 00:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김규한
      2002.03.21 03:45
      음.. 제 짧은 소견으로는 델5에서는 ADO patch를 해줘야 하구요. 델파이에서 ADO는 웬만하면 쓰지 말라는...
    • 도우너
    • 2002.03.21 00:01
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 윤신호
      2002.03.21 01:19
      OnDragDrop 이벤트에서 procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X,   ...
    • 도우너
      2002.03.21 02:22
      네..MoveTo가 있었네요..감사합니다..
    • 문상준
    • 2002.03.20 23:49
    • 0 COMMENTS
    • /
    • 0 LIKES
    • il212
    • 2002.03.20 23:37
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 윤신호
      2002.03.21 01:34
      QuickRep1.Preview; 하시기전에 Quickrep1.prepare; 를 먼저합니다. 그러면 quickrep1.Printer.PageCoun...
    • il212
      2002.03.21 02:31
        QRCompositeReport1.Prepare;   QRCompositeReport1.Preview; 처럼 하고 ...
    • 윤신호
      2002.03.21 03:56
        QRCompositeReport1.Prepare;   qrlPage.Caption := 'Page: ' + IntToStr(QRCompo...
    • 염상철
    • 2002.03.20 22:34
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.03.21 19:02
      결론을 말씀드리면, 할 수 있습니다.. 단, 해당 ODBC드라이버가 설치되어 있다는 가정하에서 말입니다. O...
    • 염상철
      2002.03.20 23:22
      오늘 배포해야하는데..직접가서 odbc설정을 하게 생겼습니다.. 꼭대답점해주세염..
    • lazenca
    • 2002.03.20 22:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 윤신호
      2002.03.21 01:46
      참조해보세요. 저도 DBGrid에서 정렬을 할려다가 실패하고편법으로 사용하였습니다. 저같은 경우 OnTit...
    • 이영주
    • 2002.03.20 21:58
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김기수
      2002.03.21 02:06
      저는 쥴리안 데이트를 이용했었습니다. 다음과 같습니다. function TForm1.CalcElapsedDay(const date1...
    • 공성환
      2002.03.20 22:18
      데이타베이스가 뭔가요? 저같으면 데이타베이스를 이용해서 사용하거든요 오라클이면 select to_date('...
    • 이영주
      2002.03.20 22:25
      감사해염.. 근데.. 저.. 날짜는 예를들어 적은거구여... 다른날짜가 될수도 있는데.... db는 오라클이...
    • 공성환
      2002.03.20 22:42
      from_date,end_date가 형이 어떤형인가요? date형이면 그냥 빼면될것같은데... char형이면 select to_...