Simulando o Alerta do Msn

Started by Be.Cool, 18 de March , 2007, 02:19:13 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Be.Cool

ae galera achei um tutorial muito dahora,
sabe quando conclui a atualizaçao do AVAST, ou quando entra um novo contato no seu msn??
não aparece uma pequena janelinha no canto inferior da tela??
então esse tutorial ensina a criar uma janelinha dessa.


Uma grande variedade de softwares hoje em dia vem se utilizando de mensagens em tela no estilo MSN. São as famosas pop-up's que surgem próximo ao relógio do Windows e geralmente chamam a atenção do usuário porque usam de uma animação bem simples. Elas surgem subindo devagar e logo em seguida desaparecem. MSN, Skype, Anti-vírus Avg entre outros vem usando e abusando desta prática.

Neste artigo vou mostrar de mais simples como criar em nosso software um alerta bastante eficaz.

Criando e explicando o projeto

Para nosso exemplo criaremos dois formulários, uma para ser a tela principal e outro será nossa tela de alerta.

Não precisamos ir muito longe para entender o que faremos. Basicamente temos que criar um loop para mover a janela de alerta "X" pixels para cima até chegar no ponto de parada.

Para ficar inteligente, vamos pegar a altura da barra de tarefas, que pode ser variável, e criar uma fórmula para calcular a posição (Top) inicial e final do nosso form de alerta.

Codificando

Em nosso form principal coloque um Button e nele digite o algoritimo da Listagem 1. Nossa tela de exibição ficará semelhante ao mostrado na Figura 1.



Modifique as propriedades do FormAlerta de acordo com os parâmetros abaixo.

Propriedade - Valor
BorderStyle - bsToolWindow
Caption - Alerta do Sistema
FormStyle - fsStayOnTop
Color - $0080FFFF

Listagem 1. Algoritimo para exibição do Alerta

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;

vai ficar tipo assim
Figura 1:

fonte:codigo-fonte.net

A sabedoria está em suas mãos

Fvox

Haha interessante  ::)

Bem legal cara...  :)
"Achas que estás caindo na insanidade? Mergulhe."


OnlyOne

esse codigo , pra estudar as apis e uma blz ,,,, embora eu prefira usar os baloes dos icones q ficam no tray

tem componente q simula essa janela tb , se alguem achar dificil , hehehhe
No céu toca Joy Division


shake

Legal cara!!!

Todo mundo fala nesse "SUIPack" mas pena q eu só achei a versão trial.
Alguém tem ai o SUIPack crackeado ai pra me passar???
Desde já grato!

Abração

Fvox

Quote from: "shake"Legal cara!!!

Todo mundo fala nesse "SUIPack" mas pena q eu só achei a versão trial.
Alguém tem ai o SUIPack crackeado ai pra me passar???
Desde já grato!

Abração

Eu também não achei ele crackeado.

Quando vc coloca pro programa iniciar ele exibe uma mensagem de que é a versão trial xD

Mas dá para ver mais ou menos como ele funciona :D
"Achas que estás caindo na insanidade? Mergulhe."


Hacker Xtreme

Eu tenho ele aqui, vou upar ele e já já posto o link =D

Hacker Xtreme

http://www.4shared.com/file/12619291/39 ... ipack.html

Desculpem pelos 20 minutos de atraso e pelo post duplo =D
Ta ai, eu não me lembro a versão, não deu pra upar os skins e nem o builder skinn dele pq fico mt pesado e eu sou usuário de discada =\. Mais acho que o google resolve =D.

Bem eu instalei sem crack nenhum e nada, ele não da aquele "Demo" aqui. Se der ai posta ou me add no msn =D (mailto:junior_antonio5@hotmail.com">junior_antonio5@hotmail.com).