Buscar

Criar form sem título que possa ser arrastado

Código

Criar form sem título que possa ser arrastado
Problema:

Fazer um relógio num form é fácil. Porém gostaria que esse orm 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.

 

 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Forms
Adicionada dia: 03/02/05
Por: Ricardo L. S.
Visualizada: 2596 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009