2011-06-16 24 views
5

Bastante simple, creo, pero necesito poder Maximizar un formulario a una pantalla en particular. No puedo encontrar información específica de Delphi.Delphi - Maximiza un formulario a una pantalla en particular

Recuerdo la posición de las formas en las siguientes cargas de aplicaciones. Sin embargo, cuando restauro la posición, entonces llamo al WindowState := wsMaximized, ¡la forma se mueve a la otra pantalla! (I tienen otras formas también visibles en esa pantalla - aparece la maximización de la 'pantalla activa')

así que necesito una función de este modo:

procedure Maximize(const aScreenIndex : Integer); 
begin 
if aScreenIndex < Screen.MonitorCount then 
    //Maximize to that screen 
end; 

Respuesta

5

interceptar el mensaje WM_GETMINMAXINFO y ajustar las coordenadas dentro de su estructura MINMAXINFO según sea necesario.

1

Conjunto Form.Position a poDesigned en tiempo de diseño En Form.FormShow o su procedimiento Maximizar:

procedure Maximize(const aScreenIndex : Integer); 
begin 
    if aScreenIndex < Screen.MonitorCount then 
    begin 
    //Maximize to that screen 
    Myform.Left := screen.Monitors[aScreenIndex ].Left; 
    Myform.WindowState := wsMaximized; 
    end; 
end; 
Cuestiones relacionadas