[DUG] Stack Overflow in WndProc
Jolyon Smith
jsmith at deltics.co.nz
Fri Jun 3 13:01:02 NZST 2011
I can't trigger a stack overflow with this WndProc implementation.
Are you sure you haven't pruned out the offending code in the "// Do Stuff"
?
From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz] On
Behalf Of jason at software-solutions.co.nz
Sent: Friday, 3 June 2011 11:35
To: delphi at delphi.org.nz
Subject: [DUG] Stack Overflow in WndProc
Hi there,
I have been experiencing a Stack Overflow error in my WndProc override and
not sure why this is..
Basic form below..
TMyForm = class(TForm)
.
Protected
procedure WndProc(var Message: TMessage); override;
.
End;
procedure TMyForm.WndProc(var Message: TMessage);
var
fActive : Boolean;
begin
case Message.Msg of
WM_NCPAINT, WM_NCACTIVATE:
begin
if not IsIconic(Handle) then
begin
if Message.Msg = WM_NCPAINT then
fActive := (Handle =
GetActiveWindow)
else
fActive := (Message.wparam
<> 0);
if fActive then
begin
//Do Stuff
end;
end;
if Message.Msg = WM_NCPAINT then
begin
if DwmCompositionEnabled then
inherited WndProc(Message);
end
else
inherited WndProc(Message);
end;
CM_DEACTIVATE:
begin
end;
CM_ACTIVATE:
begin
end;
else
begin
inherited WndProc(Message);
end;
end;
end;
any ideas what could be wrong here?
I am trapping other windows messages in other message traps like.
procedure WMCommand(var Message: TWMCommand); message WM_COMMAND;
procedure WMActivate(var Msg: TWMActivate); message WM_ACTIVATE;
Regards from New Zealand (GMT+12)
Jason Coley
Software Solutions
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20110603/251802e3/attachment-0001.html
More information about the Delphi
mailing list