Como abrir uma janela de lembrete como o msn ou skype?
Esta dica mostra como fazer o efeito de lembrete em um formulário,
você pode modificar este código para criar o seu lembrete.
É o efeito popup.
Crie uma nova aplicação, adicione um botão e no evento OnClick deixe
conforme o exemplo abaixo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
| procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
fAlertaMsn: TForm; // <- Aqui você pode definir um form pernolanizado.
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 := TForm.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(1);
end;
Sleep(2000);
for I := xTop to xIniTop do
begin
Top := Top + 1;
Show;
Update;
Application.ProcessMessages;
Sleep(1);
end;
Close;
FreeAndNil(fAlertaMsn);
end;
end; |
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
fAlertaMsn: TForm; // <- Aqui você pode definir um form pernolanizado.
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 := TForm.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(1);
end;
Sleep(2000);
for I := xTop to xIniTop do
begin
Top := Top + 1;
Show;
Update;
Application.ProcessMessages;
Sleep(1);
end;
Close;
FreeAndNil(fAlertaMsn);
end;
end;
Ao clicar no botão, você verá uma janela abrindo um popup no canto inferior direito da tela.
-
InfusTec
-
5.272 views
- 3 comentários
- 21 de abril de 2015
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo
Eu tenho um Formulario personalizado chamado ‘AVISO’ e quero que ele apareça no lugar da janela vazia, tentei alterar as linhas da forma que imaginei que fosse possível, e ela até aparece mas em seguida da um erro e logo fecha, como seria a forma correta de chamar um form personalizado com esse código ?
fAlertaMsn: TForm; // <- Aqui você pode definir um form pernolanizado.
se alterar TForm para Aviso da erro
se eu alterar aqui
fAlertaMsn := TForm.Create(Self);
fAlertaMsn := AVISO; APARECE UMA VEZ MAS NA SEGUINTE DA ERRO.
SE puder me ajudar ficaria muito agradecido , gostei muito do codigo quero usa-lo na minha aplicação, desde já agradeço. e ótimo site, encontro tudo que quero aqui.
Como eu faria para colocar um formulário personalizado neste código, já tentei de algumas formas e não consegui.
Para usar um form seu, troque nestes lugares:
fAlertaMsn: TSeuForm;
fAlertaMsn := TSeuForm.Create(Self);