Adaptarse a la resolución actual

Me gustaría saber cómo hay que programar una aplicación Delphi para que se pueda ejecutar en diferentes configuraciones gráficas (640*480, 800*600, diferentes resoluciones de color, etc..), de forma que los formularios se ajusten a cada configuración diferente de forma automática.

Este es uno de los temas que más quebraderos de cabeza nos da a los programadores. La solución, generalmente, nunca es sencilla. Los formularios Delphi cuentan con dos propiedades, Scaled y PixelsPerInch, cuya finalidad es adaptar el tamaño de letra cuando la resolución del sistema en que se ejecuta el programa difiere de la que se utilizó en el momento del desarrollo.
Esto, usado conjuntamente con el método ScaleBy, nos puede facilitar mucho el trabajo.
Básicamente podemos seguir dos métodos para conseguir que nuestras ventanas se vean siempre bien indistintamente de la resolución usada. El primero consiste en calcular la relación existente entre la resolución en que se diseñó y la resolución actual, aplicándola al tamaño del formulario, los controles y los tipos de letra. El segundo método consiste en calcular el tamaño del formulario y de todos los elementos existentes en él de forma proporcional al espacio disponible en pantalla. Aparentemente parece lo mismo, pero no lo es.
Puede ver cómo actúa el primer método creando un formulario, insertando en él los controles que desee, y escribiendo el código siguiente:

Const
     Ancho = 640; // Ancho del diseño
     Alto = 480;  // Alto del diseño

procedure TForm1.FormCreate(Sender: TObject);
begin
     Height := Height * Screen.Height Div Alto;
     Width := Width * Screen.Width Div Ancho;
     ScaleBy(Screen.Width, Ancho);
end;

Las constantes Ancho y Alto deben almacenar la resolución usada durante el diseño. En el momento en que se crea el formulario, se calcula la relación existente entre el modo de diseño y el modo actual, cuyas dimensiones tomamos del objeto Screen. La llamada al método ScaleBy se encargará de modificar proporcionalmente el tamaño de todos los controles, adaptando también los tipos de letra.
Indistintamente del método que se utilice, hay que asegurarse de que la visualización es correcta en todos los modos habituales.
Para ello lo mejor es ejecutar el programa al menos en las resoluciones de 640×480 y 1024×768 usando fuentes de letra pequeñas y grandes.