Ver Mensaje Individual
  #11  
Antiguo 21-05-2016
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Te muestro un ejemplo de como colocar una notificación en el SysTray con la API, el ejemplo viene de aquí:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellAPI;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TNotifyIconData = record
    cbSize: DWORD;
    Wnd: HWND;
    uID: UINT;
    uFlags: UINT;
    uCallbackMessage: UINT;
    hIcon: HICON;
    szTip: array [0..127] of AnsiChar;
    dwState: DWORD;
    dwStateMask: DWORD;
    szInfo: array [0..255] of AnsiChar;
    uTimeout: UINT;
    szInfoTitle: array [0..63] of AnsiChar;
    dwInfoFlags: DWORD;
  end;

// Ampliaciones para Vista
const NIIF_INFO    = $00000001;
const NIF_INFO     = $00000010;
const NIF_REALTIME = $00000040;
const NIF_SHOWTIP  = $00000080;
const NIIF_USER    = $00000004;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure ShowBalloon(Handle: THANDLE; Titulo, Texto: String);
var
  Data: TNotifyIconData;
begin
  ZeroMemory(@Data, sizeof(TNotifyIconData));
  Data.cbSize:= sizeof(TNotifyIconData);
  Data.uFlags:= NIF_ICON or NIF_INFO or NIF_REALTIME;
  Data.dwInfoFlags:= NIIF_INFO;
  lstrcpyn(Data.szInfoTitle, PCHAR(Titulo), 64-1);
  lstrcpyn(Data.szInfo, PCHAR(Texto), 256-1);
  Data.uTimeOut:= 1000;
  Data.Wnd:=  Handle;
  Shell_NotifyIcon(NIM_ADD, @Data);
  Shell_NotifyIcon(NIM_MODIFY, @Data);
  Shell_NotifyIcon(NIM_DELETE, @Data);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowBalloon(Handle, Edit1.Text, Edit2.Text);
end;

end.
Muestro una imagen del diseño del formulario utilizado para este ejemplo.

También puedes definir tu propia ventana, como en este otro ejemplo donde uso una ventana desplegable translúcida de un color y posición definidos a voluntad para notificaciones.

Saludos.

Última edición por escafandra fecha: 09-03-2020 a las 08:00:24.
Responder Con Cita