Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Stackoverflow bei setzen von MDI-Child (https://www.delphipraxis.net/95946-stackoverflow-bei-setzen-von-mdi-child.html)

Angel4585 16. Jul 2007 13:58


Stackoverflow bei setzen von MDI-Child
 
Hallo,

ich entwickle gerade (seit einem Jahr :roll: ) eine MDI-Anwendung für unsere Firma.

Seit der Umstellung auf Vista habe ich das Problem, dass wenn ich bei einer Form im OnCreate, den FormStyle auf fsMDIChild setze, sich das Programm aufhängt und nach Minuten mir dann pltzlich einen Stackoverflow bringt.

Kann mir jemand sagen was da passieren könnte?
Es sind sehr sehr viele Komponenten auf diesem Formular, kann das ein Grund sein?

Danke schonmal für die Hilfe

:angel:

Der_Unwissende 16. Jul 2007 16:43

Re: Stackoverflow bei setzen von MDI-Child
 
Zitat:

Zitat von Angel4585
Kann mir jemand sagen was da passieren könnte?
Es sind sehr sehr viele Komponenten auf diesem Formular, kann das ein Grund sein?

Hi,
also ein Stackoverflow taucht eigentlich immer bei einer endlosen Rekursion auf. Jeder Unterprogrammaufruf führt einfach dazu, dass der aktuelle Zustand auf dem Stack abgelegt wird und dann (wenn das Unterprogramm zurückkehrt) wieder von dort entfernt wird. Ruft sich jetzt irgendwas zyklisch oder rekursiv auf, ohne dass es eine (erfüllbare) Abbruchbedingung gibt, so wird der Stack irgendwann voll sein und nun ja...

Da Du sagst, dass das Problem erst seit der Umstellung auf Vista auftritt, wurde denn die akutelle Version (die mit dem Problem) auch unter XP getestet und läuft dort problemfrei? (würde mich ehrlich gesagt fast wundern).
Der allgemeine Tipp wäre hier, dass Du einfach mal die OnCreate im Einzelschritt-Modus durchgehst. Also natürlich nicht in jede Methode springen, aber so, dass Du halt siehst, wer da wen Aufruft. Da sollte dann irgendwo ein Kreis entstehen oder eben eine endlose Rekursion.

Gruß Der Unwissende


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz