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?