Ich denke, dass was er sucht ist das wirkliche Scaling. Folgende Methode erledigt die Aufgabe. Im Anhang ist auch ein Beispielprojekt.
Delphi-Quellcode:
procedure TForm1.MaximizeAndScale;
var
sWidth: Double;
sHeight: Double;
begin
sWidth := Screen.MonitorFromWindow(
Handle).Width / Width;
sHeight := Screen.MonitorFromWindow(
Handle).Height / Height;
if sWidth < sHeight
then
begin
ScaleBy(Round(Screen.MonitorFromWindow(
Handle).Width * 1.02), Width);
end
else
begin
ScaleBy(Round(Screen.MonitorFromWindow(
Handle).Height * 1.02), Height);
end;
WindowState := wsMaximized;
end;
...
...