Q&A

  • HWP연동 작업 기본적인 문제가 해결이 안되서 질문올립니다.
여기저기 자료들 보면서 작업을 해보고 있습니다.
그런데 가장 기본적으로 진행이 안되는부분이 있습니다.
이것들이 먼저 해결이 되어야 할것 같은데요
그냥 지나치지 마시고 팁이라도 꼭 부탁드립니다.
한글 2007버젼으로 하다가 실행했다가 닫기만 해도 에러가 나서
다른 컴퓨터에는 한글 2002 설치해서 해보고 있습니다. 2002에서는 닫을때 에러는 안나더라구요

델마당에서 본 아래 자료===1============
***** <- 이부분이 메모리 충동나듯 에러가 납니다.
procedure TForm1.NewHNCWndProc(var message: TMessage); // 서브클래싱한 HWP WndProc(이부분을 모르겠어요..어케 하는지)
var
  Action, Param : Variant;
begin
  Action := HWPCtrl1.CreateAction('InsertText'); // 액션 생성
  If Action Then
    Param := Action.CreateSet; // 파라메터 생성   ***** 이부분입니다.

  HWPProc(message); // 원래의 WndProc 실행
  Case message.Msg of
    WM_CHAR : begin
                Param.SetItem('Text', Char(message.WParam)); // 영문찍기
                Action.Execute(Param);
              end;
    WM_IME_COMPOSITION : // 한글일때
              begin
                if message.LParam <> 2048 then begin // 한글이 완성되었을 때의 처리
                    //-- 어쩌고 저쩌고
              end
              else begin // 입력중인 미완성 한글찍기
                Param.SetItem('Text', Char(Hi(message.WParam)) + Char(Lo(message.WParam)));
                Action.Execute(Param);
              end;
  end;
  end; // case
end;
--도통 왜그런지를 모르겠습니다.
델마당에서 본 아래 자료==1=============끝

두번째는 비베에서====
    Dim actHwp As HwpAction
    Dim setHwp As HwpParameterSet
    
    MsgBox strFind + strReplace
    
  
    
    On Error Resume Next
    
    Set actHwp = HwpCtrl1.CreateAction("AllReplace")
    Set setHwp = HwpCtrl1.CreateSet("FindReplace")
    
     hwpCtl.MovePos (2)
    
    setHwp.SetItem "FindString", strFind             '찾을 문자열
    setHwp.SetItem "ReplaceString", strReplace       '바꿀 문자열

이부분인데요
아래와 같이 바꾸니   ActHwp := HwpCtrl1.CreateAction('AllReplace'); 이부분 당연히 에러가 납니다.
그래서 변수 설정을 ActHwp, SetHwp : Variant; <- 이것으로 해보니
  SetHwp.SetItem('FindString',OdStr);              //'찾을 문자열  <-- 이부분에서 에러가 납니다.

procedure TForm1.ChngHwp(OdStr, NwStr : WideString);
var
  ActHwp : HwpAction;
  SetHwp : HwpParameterSet;
begin

  ActHwp := HwpCtrl1.CreateAction('AllReplace');
  SetHwp := HwpCtrl1.CreateSet('FindReplace');
  HwpCtrl1.MovePos(2);

  SetHwp.SetItem('FindString',OdStr);              //'찾을 문자열
  SetHwp.SetItem('ReplaceString',NwStr);        //'바꿀 문자열

===================
여기저기 검색해보니 작업해보신 델님들 많으시더라구요 가능하시면 답변 꼭 부탁드립니다.
0  COMMENTS