Em 3/7/2009 15:25, Felipe Milagres escreveu:
> o codigo eu tirei dakele link, segue ele abaixo:
> procedure TForm1.Button1Click(Sender: TObject);var I:
> Integer;  fAlertaMsn: TForm;  BarraIniciar: HWND; {Barra
> Iniciar}  tmAltura: Integer;  tmRect: TRect;  xTop : Integer;  xIniTop :
> Integer;begin //localiza o Handle da janela iniciar  BarraIniciar :=
> FindWindow('Shell_TrayWnd', nil);  //Pega o "retângulo" que envolve a
> barra e sua altura  GetWindowRect(BarraIniciar, tmRect);  tmAltura :=
> tmRect.Bottom - tmRect.Top;  fAlertaMsn :=
> TfAlertaMsn.Create(Self);  with fAlertaMsn do  begin    Left :=
> Screen.Width - ClientWidth;    if tmRect.Top = -2 then      tmAltura :=
> 30;    //Pega o top final    xTop := Screen.Height - ClientHeight -
> tmAltura;    //Pega o top inicial    xIniTop := Screen.Height +
> ClientHeight + tmAltura;    Top := xIniTop;    for I := xIniTop downto
> xTop do    begin      Top := Top - 1;      Show;      Update;
>   Application.ProcessMessages;
>   Sleep(10);    end;    Sleep(3000);    Close;
>   FreeAndNil(fAlertaMsn);  end;end;


Engraçado, tirei o Show (deixei antes do loop) e o Update do loop dessa 
código doido e foi de primeira, mudei o Close para fAlertaMsn.Close 
(queria que só a jenelinha fechace e não o projeto), e deixando o Free 
viu. Funciona primeira e não dá uma mísera mensagem de erro, exceto se 
eu tirar o Free, meu FastMM4 grita sobre o memory leak na hora (conta 
até quantos fAlertaMsn ficaram na caca da CPU :) ).

Quem quiser usar algo do tipo acima pense em TThread, ajuda um bocado 
não deixando o projeto "congelado".
-- 
[]'s, Silvio Clécio
---
Linux User: #481900
Gmail, GTalk: silviop...@gmail.com
E-mail, Y! Messenger: silviop...@yahoo.com.br
BlogSite: http://silvioprog.blogspot.com/
BlogSpot: http://silvioclecio.blogspot.com/
VirtualDriver: http://silvioprog.4shared.com/
°oO| Seja livre, use Linux! |Oo°

Responder a