Dicas - Simulando o Messenger

Veja esta dica de como fazer um formulário vibrar, como ocorre no MSN Messenger.

Messenger

 

Como posso fazer um formulário vibrar, como ocorre no MSN Messenger quando alguém quer chamar atenção? Para quem gosta de colocar efeitos especiais (e inúteis) no formulário, esta é uma excelente dica:

 

uses Windows

 

procedure WindowShake(wHandle: THandle);

const

  MAXDELTA = 4;

  SHAKETIMES = 500;

var

  oRect, wRect :TRect;

  deltax: integer;

  deltay: integer;

  cnt: integer;

  dx, dy: integer;

begin

  //lembre da posição original

  GetWindowRect(wHandle,wRect);

  oRect := wRect;

  Randomize;

  for cnt := 0 to SHAKETIMES do

  begin

    deltax := Round(Random(MAXDELTA));

    deltay := Round(Random(MAXDELTA));

    dx := Round(1 + Random(2));

    if dx = 2 then

  dx := -1;

    dy := Round(1 + Random(2));

    if dy = 2 then

  dy := -1;

    OffsetRect(wRect,dx * deltax, dy * deltay);

    MoveWindow(wHandle, wRect.Left,wRect.Top,wRect.Right -

      wRect.Left,wRect.Bottom - wRect.Top,true);

  end;

  //returna à posição de início

  MoveWindow(wHandle, oRect.Left,oRect.Top,oRect.Right -

    oRect.Left,oRect.Bottom - oRect.Top,true);

end;

  

Adicione o código em um botão, por exemplo:

  

procedure TForm1.Button1Click(Sender: TObject);

begin

  WindowShake(Application.MainForm.Handle)

end;

 

Walter Alves Chagas Junior

 

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados