Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Hacer que un Form no pueda modificar su tamaño (https://www.clubdelphi.com/foros/showthread.php?t=56875)

vejerf 29-05-2008 18:45:10

Hacer que un Form no pueda modificar su tamaño
 
Hola amigos,
Quiero que un Form aparezca a pantalla completa y no se pueda modificar su tamaño. Lo único que quiero permitir que se haga es minimizarlo y cerrarlo. Para ello pongo las siguientes propiedades:
Código Delphi [-]
Form.BorderIcons := [biSystemMenu,biMinimize];
Form.WindowState := wsMaximized;

Con esto pensaba que ya no podía realizar nada más, pero me he dado cuenta que si hago doble click sobre la barra del título se modifica el tamaño y ya no puedo volver a maximizarla. Por otra parte pinchando en la barra del título puedo arrastrar la ventana y tampoco quiero eso.

¿Que puedo hacer?

Gracias

maeyanes 29-05-2008 18:50:23

Hola...

Pon la propiedad BorderStyle de la forma en bsSingle...


Saludos...

vejerf 29-05-2008 18:52:47

Hola maeyanes, gracias por tu respuesta... pero no sirve :(... esa propiedad ya la tenía puesta pero no impide lo que comenté antes.
Gracias

roman 29-05-2008 18:54:16

Prueba esto:

Código Delphi [-]
type
  TForm1 = class(TForm)
  private
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
  end;

implementation

procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
  if Msg.CmdType and $FFF0 <> SC_RESTORE then
    inherited;
end;

// Saludos

vejerf 29-05-2008 19:02:32

Roman,
Con lo que me indicas consigo que no se pueda cambiar el tamaño de la ventana, aunque sigo pudiendo arrastrarla, pero bueno eso es mal menor. De todas formas si sabes como puedo hacer que no se pueda ni mover te lo agradecería.

Salu2 y muchas gracias :rolleyes:

maeyanes 29-05-2008 19:06:48

Hola...

Necesitas que la ventana tenga título? Porque si no, podrías usar bsNone y tu ventana no tendrá barra de título desde la cual arrastrarla...

Aunque también podrías lograrlo atrapando el mensaje que usa windows cuando quieres arrastrar una ventana...



Saludos...

Efren2006 29-05-2008 19:06:50

Yo tengo mis Form tal cual lo neccesitas , con esta propiedades

BorderIcons = [biSystemMenu,biMinimize]
BorderStyle = bsSingle
Position = poDesktopCenter
PrintScale = poProportional
FormStyle = fsStayOnTop
WindowState = wsNormal

Lo unico es que si permito que se mueva la Form..


Prueba y nos comentas

roman 29-05-2008 19:19:45

Código Delphi [-]
procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
  if
    (Msg.CmdType and $FFF0 <> SC_RESTORE) and
    (Msg.CmdType and $FFF0 <> SC_MOVE)
  then
    inherited;
end;

// Saludos

vejerf 30-05-2008 12:55:53

Muchas gracias a todos por vuestras sugerencias. Ya todo funciona tal y como quería. He usado la opción que me dio Roman porque se adaptaba mejor a mi código.

Gracias a todos!!!


La franja horaria es GMT +2. Ahora son las 18:42:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi