OldProc := SetWindowLong(Edit1.Handle, GWL_WNDPROC, @YourProcedure);procedure yourprocedure(h: hwnd; msg: longword; wparam,lparam: longint)
begin
  if msg = en_change then
    doyourproc
  else
    odlproc(h, msg, wparam, lparam);
end;

解决方案 »

  1.   

    不行,可能是我笨,我不知以下这句放在 单元中的哪个地方?
    OldProc := SetWindowLong(Edit1.Handle, GWL_WNDPROC, @YourProcedure);
      

  2.   

    我再试一回,在《D5开发人员指南》有这样的例子,多谢BaldZhang(BaldZhang)提醒 !
      

  3.   

    to BaldZhang(BaldZhang) 不通呀!
    下面这行编译出错:Variable required,就是因为这个操作不行:@YourProcedure
    OldProc := SetWindowLong(Edit1.Handle, GWL_WNDPROC, @YourProcedure);
    您能POST个完整的单元例子吗?另:用function yourprocedure(h: hwnd; msg: longword; wparam,lparam: longint):longint;stdcall;
    以上oldproc:=  通过,但没法捕捉edit1.的消息。