Mover form com imagem

Delphi

19/03/2005

Fiz um formulário sem barra de titulo, como eu faço pra mover ele por uma TImage??

Obrigado


Kohl

Kohl

Curtidas 0

Respostas

Sandra

Sandra

19/03/2005

kohl,

Encontrei esta dica no DTDelphi versão 2.7 do Lloyd Dickinson (acredito que será necessário fazer adaptações):

[size=12:d17cb0b3e2]408 - Criar form sem título que possa ser arrastado [b:d17cb0b3e2]Problema:[/b:d17cb0b3e2] 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? [b:d17cb0b3e2]Solução:[/b:d17cb0b3e2] Sim, é possível e é fácil. Siga os passos abaixo: - Crie um novo projeto; - Mude as seguintes propriedades do Form1: [/size:d17cb0b3e2]
  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. [b:d17cb0b3e2]Observações:[/b:d17cb0b3e2] Para fechar este aplicativo pressione Alt+F4. Uma alternativa mais elegante é colocar um menu local (PopupMenu) com um comando para fechar.


PS: Para fazer o download do DTDelphi, veja este tópico: [url=http://forum.clubedelphi.net/viewtopic.php?t=60055]Nova versão da DTDelphi[/url].

Espero que ajude.


GOSTEI 0
POSTAR