Thema: Delphi WndProc, WindowProc

Einzelnen Beitrag anzeigen

Akni

Registriert seit: 22. Okt 2002
4 Beiträge
 
#1

WndProc, WindowProc

  Alt 22. Okt 2002, 09:35
Hi,
kann mir vielleicht jemand bei so einem Problem helfen: ich muss Botschaften empfangen, die an ein bestimmtes MDI-Fenster gesendet werden (an alle Controls, die zu dem Fenster gehören). Wenn ich versuche, mit folgendem Code WindowProc für alle Controls zu ersetzen, dann bekomme ich „Stack-Überlauf“

Code:
TISMessage=record
  msg: TMessage;
  Pt: TPoint;
end;

var Wmessage: TISMessage;

procedure TfrmMDIChild.ISWndProc(var message: TMessage);
begin
  with message do
  begin
   if (msg=WM_LBUTTONDOWN)
    or (msg=WM_LBUTTONUP)
    or (msg=WM_LBUTTONDBLCLK)
    or (msg=WM_RBUTTONDOWN)
    or (msg=WM_RBUTTONUP)
    or (msg=WM_RBUTTONDBLCLK)
   then
   begin
    WMessage.msg:=Message;
   
    bNewMessage:=true;
   end;
  end;
  Inherited WndProc(Message);
end;

procedure TfrmMDIChild.FormCreate(Sender: TObject);
var i: integer;
begin
 for i:=0 to ControlCount-1 do
  begin
    Controls[i].WindowProc:=ISWndProc;
  end;
……….
end;
Was mache ich falsch und wie kann man das richtig realisieren?

Vielen Dank im voraus,
Akni
  Mit Zitat antworten Zitat