domingo, 27 de julho de 2014

Criar form sem título que possa ser arrastado

Problema: Fazer um relógio num form é fácil. Porém gostaria que esse form não possuísse a barra de título, mas que o usuário ainda pudesse arrastá-lo com o mouse. Isto é possível no Delphi? Solução: Sim, é possível e é fácil. Siga os passos abaixo: - Crie um novo projeto; - Mude as seguintes propriedades do Form1: BorderStyle = bsNone, FormStyle = fsStayOnTop, - Coloque um Label; - Coloque um Timer; - Altere o evento OnTimer do Timer1 conforme abaixo: procedure TForm1.Timer1Timer(Sender: TObject); begin Label1.Caption := TimeToStr(Time); end; - Altere o evento OnCreate do Form1 conforme abaixo: procedure TForm1.FormCreate(Sender: TObject); begin Width := 80; Height := 40; Label1.Left := 10; Label1.Top := 10; end; - Vá na seção private do Form1 e declare a procedure abaixo: private procedure WMNCHitTest(var Msg: TMessage); message WM_NCHitTest; public { Public declarations } end; - Vá na seção implementation e escreva a procedure abaixo: implementation {$R *.DFM} procedure TForm1.WMNCHitTest(var Msg: TMessage); begin if GetAsyncKeyState(VK_LBUTTON) < 0 then Msg.Result := HTCAPTION else Msg.Result := HTCLIENT; end; - Execute e experimente arrastar form com o mouse. Observações Para fechar este aplicativo pressione Alt+F4. Uma alternativa mais elegante é colocar um menu local (PopupMenu) com um comando para fechar.
Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário