Q&A

  • sendmessage로 TMenuItem의 포인터를 넘겼는데.. 받을때는 어떻게 받나요?
sendmessage로 TMenuItem의 포인터를 넘겼는데.. 받을때는 어떻게 받나요?

==================================================================
theFormMenuItem: TMenuItem;
~~~~~~~~

sendmessage(Application.MainForm.Handle, WM_USER+100, 0, LongInt(@theFormMenuItem));
==================================================================

이렇게 넘겼는데요..
받는 화면에서...

==================================================================
procedure TfrmMdiForm.WndProc(var M:TMessage);
var theFormMenuItem: TMenuItem;
~~~~~~~~
theFormMenuItem := TMenuItem(Pointer(m.lParam));
==================================================================
이렇게 하니깐 안되네요..ㅠㅠ 어케 받아야 되죠?
2  COMMENTS
  • Profile
    이중철 2005.10.10 20:47
    var
      ptheFormMenuItem: ^TMenuItem;
    begin
      ptheFormMenuItem := Pointer(m.lParam);
    ....

    이정도 이겠죠 ^^ 그럼.. 즐코요

  • Profile
    이중철 2005.10.11 00:36
    한가지더요
    Send시 객체의 포인터(실제적으로는 포인터의 포인터겠죠)로 보내셨던데
    그냥 객체로 보내서 받을때도 객체로 받을수 있어요
    객체를 포인터화 시키면 됩니다.

    sendmessage(Application.MainForm.Handle, WM_USER+100, 0, LongInt(Pointer(theFormMenuItem)));

    이렇게 바꾸시면 기존 소스 바뀔 필요 없겠죠

    그럼 다시 즐코요