Como evitar que um formulário fique fora da tela?

DAVID CANDIDO DA SILVA

DAVID CANDIDO DA SILVA Publicado 17/11/2017 


O código abaixo é um exemplo de como fazer para impedir de um formulário

seja arrastado para fora das margens da tela.


unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
  private
    procedure WMMove(var Msg: TWMMove); message WM_MOVE;
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
{ TForm1 }
 
procedure TForm1.WMMove(var Msg: TWMMove);
begin
  if (Left < 0) then
    Left := 0;
    if (Top < 0) then
    Top := 0;
    if (Screen.Width - (Left + Width) < 0) then
    Left := Screen.Width - Width;
    if (Screen.Height - (Top + Height) < 0) then
    Top := Screen.Height - Height;
end;
 
end.


 

Voltar ao topo