Q&A

  • Message를 받는 부분입니다.
느림보 지영이가 비록 거북이 걸음이기는 하지만 조금씩 문제해결을 하고 있습니다..

물론 한델의 많은 분들의 결정적인 도움을 등에 입구요..

늘 감사하게 생각하는거 아시죠?

그런의미에서 또 질문입니다..



PCall에서 PShell에게 메세지를 보내는 내용입니다.



procedure TForm1.Button4Click(Sender: TObject);

var

s : string;

i : integer;

begin

s := '보낸다.';

for i := 1 to length(s) do

SendMessage(TargetHandle, WM_Char, ord(s[i]), 0);

end;



PShell에서 받은 메세지를 처리하는 부분입니다.



procedure WndProc(var Message : TMessage);

var

S : String;

begin

Case Message.Msg of

WM_char :

begin

???????

//PCall에서 SendMessage로 보낸 '보낸다'를 Memo1에 출력하기.

Memeo1.Lines.Add(S);

end;

inherited WndProc(Message);

end;





여기서 바로 ???? 부분을 어떻게 구현해야 할지 막연합니다.

어떻게 해야할지.. 조언 부탁드립니다.









1  COMMENTS
  • Profile
    1999.05.15 23:02
    제가 델파이로 api를 공부하다가..



    wm_char 을 받는 부분을 사용한게 있네요..

    도움이 될지는 모르겠지만 보내 봅니다..

    뷰창에다가 그냥 눌린 키보드를 뿌리는 예제이며..

    순수 API 만 이용해 만들었습니다..



    program Window;



    uses

    Windows, Messages;



    const

    AppName = 'Window';



    function WindowProc(Window: HWnd; AMessage, WParam,

    LParam: Longint): Longint; stdcall; export;

    var

    rhdc : hdc;

    szbuffer : string;

    begin

    WindowProc := 0;



    case AMessage of

    wm_char: begin

    rhdc:=getdc(window);

    szbuffer:=char(wparam);

    textout(rhdc,0,0,pchar(szbuffer),4);

    releasedc(window,rhdc);

    result:=0;

    end;

    wm_Destroy: begin

    PostQuitMessage(0);

    Exit;

    end;

    end;



    WindowProc := DefWindowProc(Window, AMessage, WParam, LParam);

    end;



    { Register the Window Class }

    function WinRegister: Boolean;

    var

    WindowClass: TWndClass;

    begin

    WindowClass.Style := cs_hRedraw or cs_vRedraw;

    WindowClass.lpfnWndProc := @WindowProc;

    WindowClass.cbClsExtra := 0;

    WindowClass.cbWndExtra := 0;

    WindowClass.hInstance := HInstance;

    WindowClass.hIcon := LoadIcon(0, idi_Application);

    WindowClass.hCursor := LoadCursor(0, idc_Arrow);

    WindowClass.hbrBackground := HBrush(Color_Window);

    WindowClass.lpszMenuName := nil;

    WindowClass.lpszClassName := AppName;



    Result := RegisterClass(WindowClass) <> 0;

    end;



    { Create the Window Class }

    function WinCreate: HWnd;

    var

    hWindow: HWnd;

    begin

    hWindow := CreateWindow(AppName, 'Object Pascal Window',

    ws_OverlappedWindow, cw_UseDefault, cw_UseDefault,

    cw_UseDefault, cw_UseDefault, 0, 0, HInstance, nil);



    if hWindow <> 0 then begin

    ShowWindow(hWindow, CmdShow);

    UpdateWindow(hWindow);

    end;



    Result := hWindow;

    end;





    var

    AMessage: TMsg;

    hWindow: HWnd;

    begin

    if not WinRegister then begin

    MessageBox(0, 'Register failed', nil, mb_Ok);

    Exit;

    end;

    hWindow := WinCreate;

    if hWindow = 0 then begin

    MessageBox(0, 'WinCreate failed', nil, mb_Ok);

    Exit;

    end;



    while GetMessage(AMessage, 0, 0, 0) do begin

    TranslateMessage(AMessage);

    DispatchMessage(AMessage);

    end;

    Halt(AMessage.wParam);

    end.



    도움이 되기를 바랍니다..



    류민철...



    • djha
    • 1999.05.17 22:17
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      1999.05.18 01:47
      djha wrote: > > 안녕하십니까? 입문한지 얼마 안된 초보입니다. > > 텍스트 에디터를 만들고자 하는...
    • djha
      1999.05.18 02:44
      초보라서 질문이 엉성했습니다.다시 질문을 드리겠습니다. 텍스트에디트를 만들고자합니다. 그런데 이...
    • 이호선
    • 1999.05.17 20:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.05.17 20:54
      이호선 wrote: > 안녕하세요. > 현재 화면 모드를 알아 내는 방법이 어떻게 되나요. 안녕하세요 김영...
    • saint09
    • 1999.05.17 20:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      1999.05.18 01:56
      saint09 wrote: > 안녕하세요 델파이로 db를 작성하려고 하는데 기본적으로 파라독스로 되어 있더군요. 예...
    • 북해
    • 1999.05.17 18:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.17 19:44
      TMemo의 ImeMode를 imSHanguel 로 줘보세요. ^^ 델4에서는 간단하죠? 북해 wrote: > 안녕하세요. 저는...
    • 북해
    • 1999.05.17 18:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.17 19:41
      델파이의 자동코드완성기는 그 문법에 맞게 출력이 됩니다. 즉, Edit1.Text := Query1. 까지 쳤을때는 Fie...
    • 초심자
    • 1999.05.17 18:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • redhead
      1999.05.18 19:16
      RAM을 얼마나 쓰시는지? 윈98에서 리소스가 부족하면 그런 현상이 나타나는 것 같던데요.
    • 북해
    • 1999.05.17 18:39
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하윤철
      1999.05.18 01:14
      북해 wrote: > 안녕하세요. 저는 간단한 메모장 프로그램을 만들려고 하는데요, 메인폼에서는 검색을 하고...
    • 이정욱
      1999.05.17 19:37
      Edit을 클릭해도 그 이벤트가 발생하나요? Memo도요? 이상하군요.. Edit에서 Enter를 시면 그 이벤트가 ...
    • 한상훈
    • 1999.05.17 12:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.17 19:21
      Query로 하셨으면 그 Query는 이미 그 조건에 해당하는 데이타만 긁어서 가지고 있습니다. 다음데이타를 ...
    • 이대선
    • 1999.05.17 05:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      1999.05.18 01:45
      이대선 wrote: > 'CBAA'를 'AABC'로 쇼트 시키는 법을 알고 싶습니다. > > 꼭 좀 답변해 주세요.. > ...
    • 김영대
      1999.05.17 17:50
      이대선 wrote: > 'CBAA'를 'AABC'로 쇼트 시키는 법을 알고 싶습니다. > > 꼭 좀 답변해 주세요.. > ...
    • saint09
    • 1999.05.16 22:11
    • 0 COMMENTS
    • /
    • 0 LIKES
    • saint09
    • 1999.05.16 09:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.16 11:16
      DrawFocusRect는 이렇게 사용하세요. 예를들어 Rect(100,100,200,200)을 Panel에 그린다면... var Rct...
    • 이정욱
      1999.05.16 04:48
      DrawFocusRect를 이용하시면 됩니다. DrawFocusRect를 이용해서 그린 후 다시 그자리에 DrawFocusRect를 ...
    • 정방현
    • 1999.05.16 01:59
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이천주
      1999.05.17 22:23
      저는 이렇게 했읍니다. 두개짜리 따옴표가 아니고 한개짜리를 써야합니다. ss := ' update X...
    • 신호성
      1999.05.16 06:01
      정방현 wrote: > 'cpu'라는 인자를 대입해서 오라클 테이블에 update하고자 합니다. > 실행 error는 Edat...
    • 정방현
      1999.05.16 20:01
      신호성 wrote: > 정방현 wrote: > > 'cpu'라는 인자를 대입해서 오라클 테이블에 update하고자 합니다. ...
    • 김경수
      1999.05.17 00:26
      안녕하세요. parambyname('cpu').asstring~~` 대신에 params[0].asstring 으로 바꾸어서 해보세요.왜그런...
    • saint09
    • 1999.05.16 01:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.16 02:04
      saint09 wrote: > 안녕하세요. 델파이에 보면 각 컴포넌트별로 이벤트가 있습니다. 이 이벤트들을 보면 마...
    • 이정욱
      1999.05.17 05:15
      스크롤바를 움직일 때 발생하는 메세지입니다. WM_SYSCOMMAND 의 wParam의 값이 SC_HSCROLL 이면 수평스크...
    • 강지영
    • 1999.05.15 21:36
    • 1 COMMENTS
    • /
    • 1 LIKES
    • 1999.05.15 23:02
      제가 델파이로 api를 공부하다가.. wm_char 을 받는 부분을 사용한게 있네요.. 도움이 될지는 모르겠지...