Así es como lo he solucionado...
En la propiedad Align del form debe de llevar alClient, para que ocupe toda la pantalla.
Cita:
x:=Screen.Width;
y:= Screen.Height;
Height := Height * y div alto;
Width := Width * x div ancho;
ScaleBy(Screen.Width, ancho);
//El dbgrid no hace falta escalarlo porque lo hace según su contenido (ver a continuación)
// Dbgrid1.ScaleBy(Screen.Width, ancho);
Dbgrid1.Columns[0].Width:=Dbgrid1.Columns[0].Width * x div ancho;
Dbgrid1.Columns[1].Width:=Dbgrid1.Columns[1].Width * x div ancho;
Dbgrid1.Columns[2].Width:=Dbgrid1.Columns[2].Width * x div ancho;
Dbgrid1.Columns[3].Width:=Dbgrid1.Columns[3].Width * x div ancho;
Dbgrid1.Columns[4].Width:=Dbgrid1.Columns[4].Width * x div ancho;
Dbgrid1.Columns[0].Title.Font.Size:=Dbgrid1.Columns[0].Title.Font.Size * x div ancho;
Dbgrid1.Columns[1].Title.Font.Size:=Dbgrid1.Columns[1].Title.Font.Size * x div ancho;
Dbgrid1.Columns[2].Title.Font.Size:=Dbgrid1.Columns[2].Title.Font.Size * x div ancho;
Dbgrid1.Columns[3].Title.Font.Size:=Dbgrid1.Columns[3].Title.Font.Size * x div ancho;
Dbgrid1.Columns[4].Title.Font.Size:=Dbgrid1.Columns[4].Title.Font.Size * x div ancho;
|
Habría que ver la forma de optimizar el código para no repetir tanto Columns[0], [1], etc. y el formulario queda perfecto sea cual sea la resolución donde se vaya a mostrar.