Einzelnen Beitrag anzeigen

Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#1

Form einem Panel zuweisen

  Alt 30. Dez 2022, 16:44
Delphi-Version: 11 Alexandria
In der Vergangenheit habe ich statt Frames normale Formulare verwendet und diese jeweils in einem Panel im Hauptformular eingeblendet.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Parent := Panel1.Parent;
  Form2.Align := alClient;
  Form2.Borderstyle := bsNone;
  Form2.Windowstate := wsMaximized;
  Form2.Show;
end;
Dies klappte bisher problemlos und auch mit D11.2 klappt es prinzipiell.
Aber sobald ich in einer Umgebung mit unterschiedlichen Monitorauflösungen arbeite (4k, 200% / HD, 100%), funktioniert dieser Ansatz nur noch bedingt.

Ein minimales Beispiel habe ich angehängt:
- Sobald der Monitor gewechselt wird, wird die eingeblendete Form2 nicht mehr angezeigt - es ist lediglich die Form1 sichtbar
- In einer 1 Monitor-Umgebung geschieht dies i.d.R., wenn der Bildschirmschoner zugeschlagen, bzw. der Monitor abgeschaltet hat.
- Ab und an geschieht es, dass das Programm nicht mehr bedient werden kann.
- Wenn ich in den Projektoptionen die "DPI-Unterstützung" ausschalte, funktioniert das Programm wie erwartet.

Das eigentliche Programm ist über die letzten Jahre und IDE's gewachsen und diesbezüglich hatte ich vor D11.x keine Probleme.
Ist es effektiv ein Bug von D11.(2) oder habe ich beim zuweisen etwas wichtiges vergessen, welches sich wegen der Thematik 4k erst jetzt auswirkt?
Angehängte Dateien
Dateityp: zip Form_Panel_zuweisen.zip (91,4 KB, 4x aufgerufen)
Roland
  Mit Zitat antworten Zitat