Hallo zusammen,
seit einigen Tagen suche ich nach meinem Fehler und sehe wohl inzwischen den Wald vor lauter Sträuchern nicht mehr (Bäume sind alle abgesägt).
Folgende Situation:
- älteres Projekt in D7
-
MDI Applikation
- Application.Mainwindow ist fsMDIForm
- es gibt eine MDIChild-Basisklasse
- davon abgeleitet viele Kinder
- im Hauptformular ist eine TreeView (Projekt-Baum)
- beim Select eines Knoten wird das entsprechende MDIChild-Formular angezeigt
Wie gesagt, das ist ein älteres Projekt (seit 2003 laufend). Bisher klappte alles wie gewollt.
Nun gibt es bei einem
MDI-Child (dem Formular zum obersten Knoten = Projektknoten) seit
einigen Tagen ein Problem:
Das Formular wird nicht mehr wie die anderen MDIChilds in den verfügbaren Clint-Bereich des Hauptformulares eingepasst sondern scheinbar in den Bildschirm (s.u.).
Ich habe natürlich eine Versionsverwaltung aktiv und versucht herauszufinend, ab welcher Änderung das Problem auftritt.
Aber hier komme ich nicht weiter. Auch "alte" Versionen zeigen nun das Problem in der Delphi-
IDE und als EXE nach neukompieren, obwohl die "alten" EXE das Problem nicht haben.
Natürlich habe ich was vermurkst .. nur was?
Zur Fehlersuche habe ich mir im FormResize des MDIChild einige Infos anzeigen lassen.
FormResze wird oft aufgerufen. Nach der Instanzierung wird irgendwannn die MDIChild-Formgröße genau dem Clientbereich angepasst.
Hier Auszüge meiner "Debuganzeige":
frmRMProjekt.Width x Height = 860 x 742
frmRMProjekt.ClientWidth x ClientHeight = 860 x 742
frmRMProjekt.FormStyle = fsMDIChild
frmRMProjekt.Owner = dmMakeTree
frmMain.ClientRect = 860 x 742
und bei einem der nächsen Aufrufe von FormResize sieht das dann plötzlich so aus:
frmRMProjekt.Width x Height =
1920 x 1016
frmRMProjekt.ClientWidth x ClientHeight = 1920 x 1016
frmRMProjekt.FormStyle = fsMDIChild
frmRMProjekt.Owner = dmMakeTree
frmMain.ClientRect =
864 x 746
Wie gesagt - NUR bei diesem Formular.
Hat irgendwer zielführende Ideen oder Vorschläge? Ich bin wirklich dankbar für Tipps.
Sicher habe ich hier nicht alle Details aufgeführt - einfach fragen.
Den gesamten Code zu posten halte ich für extrem unelegant, da das ein größeres Projekt ist.
Danke für Unterstützung.