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/)
-   -   Formulare auf PageControl werden nicht dargestellt (https://www.delphipraxis.net/184530-formulare-auf-pagecontrol-werden-nicht-dargestellt.html)

AndyDF 2. Apr 2015 09:23

Formulare auf PageControl werden nicht dargestellt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

habe ein Problem, dass mich schon relativ lange und immer wieder beschäftigt.

Ich habe öfter mal eine PageControl im Einsatz bei der ich auf jeder Seite ein anderes eigenes Formular anzeige.
Diese Formulare werden dynamisch zur Laufzeit erzeugt.
Wenn das dyn. Formular selbst auch eine PageControl enthält welche wiederum ein Formular anzeigt, kommt es beim ersten Start zu einem Anzeigeproblem.

Dabei wird das Formular erst angezeigt, wenn ich einmal auf einen anderen TabSheet wechsle und zurück.

Im Anhang habe ich ein Beispiel Projekt angehängt. (nichts besonderes - habe es nur schnell zusammen geklickt).
Beim Start sollte die "Seite 1" korrekt aussehen und TabSheet 1 sollte befüllt sein.
Beim Wechsel auf "Seite 2" sollte die PageControl auf "Seite 2" leer sein. Wird erst dargestellt nach Wechsel auf TabSheet2 und zurück auf TabSheet1.

Kann ich mit Delphi XE2 und Delphi XE7 nachvollziehen.

Habe es bisher immer mit Workarounds gelöst wie: Den Show der SubForms Timer gesteuert ausführen. Aber das ist auch nicht schön.
Vielleicht hat hierzu einer eine Idee.

Ich möchte allerdings keine Frames sondern Forms verwenden. In unserer Anwendung müssen die Sub-Forms auch eigenständig laufen können.
Normalerweise verwende ich auch die PageControl von DevExpress. Das Problem habe ich auch da.

Viele Grüße,
Andreas

uligerhardt 2. Apr 2015 09:52

AW: Formulare auf PageControl werden nicht dargestellt
 
Zitat:

Zitat von AndyDF (Beitrag 1295930)
Ich möchte allerdings keine Frames sondern Forms verwenden. In unserer Anwendung müssen die Sub-Forms auch eigenständig laufen können.

Na, das ist doch auch mit Frames kein Problem. Da schreibst du dir eine kleine Routine ShowFrameModal oder so, die eine leere TForm erzeugt, auf die du den Frame pappst.

AndyDF 2. Apr 2015 10:15

AW: Formulare auf PageControl werden nicht dargestellt
 
Zitat:

Zitat von uligerhardt (Beitrag 1295934)
Zitat:

Zitat von AndyDF (Beitrag 1295930)
Ich möchte allerdings keine Frames sondern Forms verwenden. In unserer Anwendung müssen die Sub-Forms auch eigenständig laufen können.

Na, das ist doch auch mit Frames kein Problem. Da schreibst du dir eine kleine Routine ShowFrameModal oder so, die eine leere TForm erzeugt, auf die du den Frame pappst.

Ja das ist schon richtig. Aber wir nutzen das dyn. Verwenden von Formulare sehr intensiv. Daher würde wir gerne momentan auch weiterhin Formulare und keine Frames verwenden.
Mich würde interessieren ob es eine Lösung mit den Formularen gibt oder ob grundsätzlich an der Vorgehensweise etwas nicht stimmt. Ich weiß auch gar nicht, ob das Problem nicht auch mit Frames besteht.

Sir Rufo 2. Apr 2015 11:10

AW: Formulare auf PageControl werden nicht dargestellt
 
Ich werfe jetzt mal Delphi-Referenz durchsuchenTControl.ManualDock in den Raum.

Um eine Form zu einem PageControl hinzuzufügen genügt es:
Delphi-Quellcode:
procedure Foo( APageControl : TPageControl; AForm : TForm );
begin
  AForm.ManualDock( APageControl, nil, alClient );
  AForm.Visible := True;
end;
Dabei wird
Delphi-Quellcode:
TForm.Caption
automatisch als
Delphi-Quellcode:
TTabSheet.Caption
verwendet.

Ach ja, und die TabSheets brauche ich auch nicht erzeugen, denn diese werden durch das Docken automatisch erzeugt ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:38 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