05. april 2004 - 00:23
#1
Jeg har lavet en engang der bruger 3 timere:
Først ved OnCreate eller umeldbart før "toasten" (som det kaldes) vises (ToastForm er navnet på den form der skal "poppe" op.
var
hTaskBarWindow : HWnd;
Rect : TRect;
begin
ToastForm.ClientWidth := 104;
ToastForm.ClientHeight := 0;
hTaskBarWindow:=FindWindow('Shell_TrayWnd',nil);
GetWindowRect( hTaskBarWindow, Rect );
Wd := Rect.Right - Rect.Left;
He := Rect.Bottom - Rect.Top;
ToastForm.Top := Screen.Height - He;
ToastForm.Left := Screen.Width - ClientWidth - 5;
end;
Og nogle timere, alle på ToastForm
procedure TToastForm.FadeInTimer(Sender: TObject);
begin
if ClientHeight >= 104 then begin //ændre 104 til den højde du vil have din toast til at være når den stopper med at "vokse"
FadeIn.Enabled := False;
HoldToast.Enabled := True;
end
else begin
ClientHeight := ClientHeight + 1;
Top := Top - 1;
end;
end;
procedure TToastForm.FadeOutTimer(Sender: TObject);
begin
ClientHeight := ClientHeight - 1;
Top := Top + 1;
if ClientHeight <= 0 then begin
FadeOut.Enabled := False;
ToastForm.Hide;
ChkTimer.Enabled := True;
end;
end;
procedure TToastForm.HoldToastTimer(Sender: TObject);
begin
HoldToast.Enabled := False;
FadeOut.Enabled := True;
end;
FadeInTimer og FadeOutTimer har et interval på 1
HoldToastTimer har jeg sat til 7000 //altså 7 sekunder, før den gemmer sig igen
Når du så vil vise din toast, aktivere du blot FadeInTimer med:
FadeInTimer.Enabled := True;