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