![]() |
Parent wird bei Form2.Create gelöscht
Hallo,
seit einer Layout-Änderung hat mein Programm einen merkwürdigen Fehler. Ich habe ein Panel in Form2 hinzugefügt und dort vorhandene Komponenten reingezogen. Auf Form1 öffne ich in einem OnEnter-Event eine Kalender-Komponente (Parent dieser Komponente ist TScrollBox). Das ganze funktioniert auch wie gewünscht, bis ich Form2 aufrufe:
Delphi-Quellcode:
Sobald ich mit dem Debugger dort rein gehe, ist Form1.Kalender.Parent leer - zumindest die Eigenschaft Name - und mein Kalender wird danach nicht mehr angezeigt (Form1.Kalender.Showing ist false). FormCreate ist die Standard-Methode, keine überladene oder eigene.
if NOT Assigned(Form2) then
Form2 := TForm2.Create(Self); Form2.Show; Form2.WindowState := wsNormal; Mein Workaround funktioniert auch nicht:
Delphi-Quellcode:
Form1.Kalender.Showing ist dann zwar nicht mehr false, aber der Kalender ist nicht sichtbar.
if (Kalender.Parent <> ScrollBox1) then begin
RemoveControl(Kalender); ScrollBox1.InsertControl(Kalender); end; Die Positionsangaben setze ich zur Sicherheit ebenfalls neu. Hat irgendjemand eine Idee, woran es liegen könnte? Der Aufruf anderer Formulare funktioniert wie gewohnt. Ich bedanke mich im Voraus. |
AW: Parent wird bei Form2.Create gelöscht
Zitat:
Frank |
AW: Parent wird bei Form2.Create gelöscht
Nein, schon mit STRG+X und STRG+V.
|
AW: Parent wird bei Form2.Create gelöscht
Und wenn du das Panel bewegst, bewegen sich die Komponenten mit, das hast du sicher getestet.
Dann wäre ein Einblick in die pas + dfm hilfreich. Kannst du die anhängen? Frank |
AW: Parent wird bei Form2.Create gelöscht
Die Komponenten sind sicher in dem Panel, das ist auch in der Strukturansicht zu sehen.
Leider kann ich keinen Code aus dem Programm hier posten (Geschäftsrichtlinie). In einem Beispielprogramm mit identischen Komponenten funktioniert es natürlich. |
AW: Parent wird bei Form2.Create gelöscht
Hallo,
Delphi-Quellcode:
Das darfst du nicht machen.
Form2.Show;
Form2.WindowState := wsNormal; Das Ändern des WindowState erzeugt intern ein neues (Windows-) Fenster-Handle (so war das zumindestens früher). Warum nicht so?
Delphi-Quellcode:
Form2.WindowState := wsNormal;
Form2.Show; |
AW: Parent wird bei Form2.Create gelöscht
Außerdem in der DFM (Properties) der TForm2 darf Visible nicht auf True stehen.
Früher (vor über 15 Jahren) war das standardmäßig mal auf True ... also bei alten Units/Forms eventuell immernoch. |
AW: Parent wird bei Form2.Create gelöscht
Hab den Fehler gefunden: ich habe einem TileBarItem-Control von Devexpress mein Kalender-Control als Detail-Control zugewiesen (nicht absichtlich).
Manchmal macht man vielleicht Blödsinn... :stupid: Danke an alle für die Vorschläge. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz