Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4331710
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T10:09:02+00:00 2026-05-21T10:09:02+00:00

small piece of the stack :0047fe17 TControl.Perform + $27 :0047eb54 TControl.FontChanged + $40 :0043797f

  • 0

small piece of the stack

:0047fe17 TControl.Perform + $27
:0047eb54 TControl.FontChanged + $40
:0043797f TFont.SetData + $2F
:00437d92 TFont.SetStyle + $36
:004b9839 TCustomActionControl.CMFontChanged + $1D
:0047fe17 TControl.Perform + $27
:0047eb54 TControl.FontChanged + $40
:004378c5 TFont.Assign + $61
:004bf1f0 TThemedMenuItem.CalcBounds + $68
:004b9839 TCustomActionControl.CMFontChanged + $1D
:0047fe17 TControl.Perform + $27
:0047eb54 TControl.FontChanged + $40
:0043797f TFont.SetData + $2F
:00437d92 TFont.SetStyle + $36
:004b9839 TCustomActionControl.CMFontChanged + $1D
:0047fe17 TControl.Perform + $27
:0047eb54 TControl.FontChanged + $40
:004378c5 TFont.Assign + $61
:004bf1f0 TThemedMenuItem.CalcBounds + $68
:004b9839 TCustomActionControl.CMFontChanged + $1D
:0047fe17 TControl.Perform + $27
:0047eb54 TControl.FontChanged + $40
:0043797f TFont.SetData + $2F
:00437d92 TFont.SetStyle + $36
:004b9839 TCustomActionControl.CMFontChanged + $1D
:0047fe17 TControl.Perform + $27
:0047eb54 TControl.FontChanged + $40
:004378c5 TFont.Assign + $61
:004bf1f0 TThemedMenuItem.CalcBounds + $68
:004b9839 TCustomActionControl.CMFontChanged + $1D
:0047fe17 TControl.Perform + $27
:0047eb54 TControl.FontChanged + $40
:0043797f TFont.SetData + $2F
:00437d92 TFont.SetStyle + $36
:004b9839 TCustomActionControl.CMFontChanged + $1D
:0047fe17 TControl.Perform + $27
:0047eb54 TControl.FontChanged + $40
:004378c5 TFont.Assign + $61
:004bf1f0 TThemedMenuItem.CalcBounds + $68
:004b9839 TCustomActionControl.CMFontChanged + $1D
:0047fe17 TControl.Perform + $27
:0047eb54 TControl.FontChanged + $40
:0043797f TFont.SetData + $2F
:00437d92 TFont.SetStyle + $36
:004bb1d7 TCustomActionControl.CMTextChanged + $1F
:004801f1 TControl.WndProc + $2D5
:0047fe17 TControl.Perform + $27
:0047ded6 TControl.SetTextBuf + $22
:004ba9df TCustomActionControl.SetActionClient + $C7
:004b6aa7 TCustomActionBar.CreateControl + $D3
:004a8b6f TCustomActionMenuBar.CreateControl + $B
:004bdbee TCustomActionDockBar.CreateControls + $A
:00481779 TControl.WMContextMenu + $121

and it goes on and on …

the last code executed that i generated was, changing one of the menu’s captions.

UPDATE:
i have traced the source code and the line it cashed on is

procedure TPopupActionBar.Popup(X, Y: Integer);
...
FPopupMenu.RecreateControls;//crash here
FPopupMenu.Popup(X, Y);

however there is a recursive call the line below.
and going throw the unit actnPopup.pas,
i can’t find the tail of the recursive call.

its an existing code that worked and compiled well under older Delphi version. After A new ManuPop was created , and replaced the old one, it works well. However, there is a loss in the design as the original had more features into it.

Still clueless.

more updates: something even more oddish, as i run the code on my machine(the compiling machine), it crash and burn, and on another machine(a user machine), it run with rainbows and butterflies. i don’t get!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T10:09:03+00:00Added an answer on May 21, 2026 at 10:09 am

    General Guidelines

    This is a recursion problem.
    Notice from the call stack that the exact same sequence occurs each time.
    This means that something is causing code to enter a method from itself – even if it is indirectly.

    :0047fe17 TControl.Perform + $27 
    :0047eb54 TControl.FontChanged + $40 
    :0043797f TFont.SetData + $2F 
    :00437d92 TFont.SetStyle + $36 
    :004b9839 TCustomActionControl.CMFontChanged + $1D 
    :0047fe17 TControl.Perform + $27 
    :0047eb54 TControl.FontChanged + $40 
    :004378c5 TFont.Assign + $61 
    :004bf1f0 TThemedMenuItem.CalcBounds + $68 
    :004b9839 TCustomActionControl.CMFontChanged + $1D 
    

    The following simple code illustrates the same kind of problem:

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Button1Click(Sender);
    end;
    

    In general, one would simply set a breakpoint and find out why the method is re-entrant. Usually this is because:

    • The recursion is intentional, but there is a bug preventing the terminating condition being reached.
    • Or the recursion is an unintentional side-effect of circular ‘trigger’ behaviour. I.e. Object B changes its state in response to a change in Object A, and vice versa. So the events on A & B keep calling each other.
    • Incorrect use of Windows Message Architecture. Be very wary of Application.ProcessMessages. It is a very dangerous method to use beause it can cause re-entry into code from the middle of a task/process – as opposed to the next iteration of the Windows Message Loop.

    This Specific Problem

    Of course looking the stack, this appears to be standard Delphi code recursively calling itself. But one of the dangers of RAD development is that setting property values is a form of writing code – even though it doesn’t seem that way.
    It is possible that a particular property value may cause some of the code to behave slightly differently, thereby triggering the recursion.

    Unfortunately there isn’t enough information for a difinitive solution, but I can offer suggestions of things to check:

    • Of course, compiling with debug dcu’s might help to track down the problem. Don’t be intimidated by the prospect reading VCL Source code – it’s actually one of the best ways to learn.
    • Have you added any Action Controls?
    • Are you making use of any third party components?
    • Is there a difference between whether the Popup Menu is visible at the time or not?
    • I notice that the FontChanged method is being called, yet changing a caption should not trigger that.
    • If you are using any additional components that would interact with the PopupMenu, try deleting or disabling them one at a time.
    • Try resetting properties back to their default values. This can be done viewing the dfm as text. Most property values you see in the dfm will be the non-default value. Simply deleting the line will reset it back to default.

    If You’re Still Struggling

    You can provide some additional information to help out:

    • Sample code that sets the caption, including the event that triggers it.
    • The event handlers for the Popup Menu
    • and any Action Controls that interact with the menu.
    • The dfm as text of the relevant controls.
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have written a small piece of code that would perform Run length encoding
Here a small piece of code for testing and explain the problem. I have
I have a small piece of code that works as a plugin for a
I have this small piece of code that basically takes a list and runs
I've written a small piece of code that should detect if there are any
I have a small piece of code that I use to keep track of
What I have written a small piece of code to find and remove if
For a test 'crash' I need a small piece of Delphi code to see
I have just written a small piece of code and it struck me that
I'm working on a small piece of ksh code for a simple task. I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.