domingo, 27 de julho de 2014
Home »
» Criar form sem título que possa ser arrastado
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.
Postagens Relacionadas:
Forçar foco em janelaAs funções abaixo forçam para que a janela informada fique em primeiro plano. Primeira alternativa function ForceForegroundWindow(hwnd: THandle): Boolean; const SPI_GETFOREGROUNDLOCKTIMEOUT = $2000; SPI_SETFOREGROUNDL… Read More
Anexar dois formsÉ comum encontrarmos aplicativos que possuem dois ou mais formulários que se mantém o tempo todo "colados" um ao outro. É o caso, por exemplo, do conhecido Winamp. Como fazer isto em aplicações Delphi? Vamos aos passos: 1. … Read More
Impedir que o form seja arrastado para fora das margens da tela- Na seção Private declare a procedure abaixo: private procedure WMMove(var Msg: TWMMove); message WM_MOVE; - Abaixo da palavra implementation escreva a procedure abaixo: procedure TForm1.WMMove(var Msg: TWMMove); beg… Read More
Xtreme Rat 3.5 Private! Fixed Version ! Cracked by The Old Warrio … Read More
Impedir que o form seja fechado com Alt+F4Este é um problema fácil de resolver. Vejamos porque. Toda vez que um form recebe um comando para ser fechado, tal como Form1.Close ou mesmo uma mensagem WM_CLOSE, o evento OnCloseQuery é disparado. Este evento passa um par… Read More
0 comentários:
Postar um comentário