[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