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
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo