Poner scaled a false, sirve para que al canviar al pasar de una resolucion (PixelsPerInch) a otra, no varie ni el tamaño, ni el tamaño de la fuente.
Utilizar ScaleBy, escalaremos el formulario y las fuentes a nuestro gusto.
supongo que el problema es que en este caso el formulario se mantiene a los 96 pixeles/pulgada pero al tener fuentes grandes 120, no nos sirve de nada escalar el formulario, ya que el formulario mantiene sus 96.
prueba con un código similar al siguiente
Código:
uses TypInfo;
Var
i,n:integer;
O:TObject;
begin
for i:=0 to ComponentCount-1 do
if Components[i] is TControl then
begin
O:=GetObjectProp(Components[i],'Font');
if O<>nil then
begin
TFont(O).size:=(TFont(O).size * 96) div TFont(O).PixelsPerInch;
// no sé si funcionará correctamente
// TFont(O).PixelsPerInch:=96;
// TFont(O).Height:=(TFont(O).Height * 96) div TFont(O).PixelsPerInch;
end;
end;
end;