PDA

Ver la Versión Completa : Fijar tamaño máximo y mínimo a un Form


Neftali [Germán.Estévez]
30-06-2006, 13:08:02
Cómo fijar tamaños máximo y minimo a un form (< D4).

Aunque D4 ya viene provisto de propiedades para manejar los tamaños máximo y mínimo de un Form en D3 sigue teniendo que hacerse a pelo. La base de tal característica reside en responder a un mensaje windows que manda el sistema al form cuando el usuario realiza un 'estirado' del mismo. El mensaje se llama WM_GETMINMAXINFO y su lParam apunta a una estructura tipo TMinMaxInfo que debe rellenarse con la información necesaria.

La estructura MinMaxInfo contiene los siguientes campos :


typedef struct tagMINMAXINFO { // mmi

POINT ptReserved;
POINT ptMaxSize;
POINT ptMaxPosition;
POINT ptMinTrackSize;
POINT ptMaxTrackSize;

} MINMAXINFO;


Ejemplo de utilización, primero declaramos la procedure :


TForm1=class(TForm)
...
private
...
procedure WMGetMinMaxInfo(var MSG: Tmessage); message WM_GetMinMaxInfo;
end;


luego su codificación :


procedure TForm1.WMGetMinMaxInfo(var MSG: Tmessage);
Begin
inherited;
with PMinMaxInfo(MSG.lparam)^ do with ptMinTrackSize do begin
X := 539;
Y := 358;
end;
end;


Para responder ante un tamaño máximo, rellenariamos también la estructura ptMaxTrackSize