[DUG] Stack Overflow in WndProc

Kyley Harris kyleyharris at gmail.com
Fri Jun 3 13:59:37 NZST 2011


Put a break point in and when you hit about 10 deep stack trace the
repeating call.

On Friday, June 3, 2011, jason at software-solutions.co.nz
<jason at software-solutions.co.nz> wrote:
> 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 ColeySoftware Solutions

-- 
Kyley Harris
Harris Software
+64-21-671-821



More information about the Delphi mailing list