Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Balón de texto de Windows. (https://www.clubdelphi.com/foros/showthread.php?t=38586)

Lepe 18-01-2007 11:53:04

Cita:

Empezado por fide
]Ha, importante. Si alguien sabe como hacer que el baloncito se pueda notificar también sobre cualquier control del formulario nos lo puede comunicar a mi y a todos los de este foro para mejorar el componente.

Lo dicho, aunque el balón sea idéntico, en forma, tamaño y color, se usa técnicas distintas. El balón que has construido solo es para el TrayIcon.

Saludos

fide 20-01-2007 01:53:36

Balon
 
Si lepe, fue solo para el tray. Yo dije que queria aprender a notificarlo sobre los controles, además tambien dije que se podia mejorar si me enviaban sugerencias.

gtellezv 13-02-2007 00:58:17

No me funciona
 
Hola, use tu codigo instalando el componente y pegando la llamada en un formulario y no me funciona, estoy con delphi 7 y winxp. Te habra faltado algo por ahi?. Gracias y salu2

FENIXadr 31-03-2014 05:15:08

Tiempo del Globo
 
Hola gente estoy utilizando los globos con unos procedimientos que encontré dando vueltas en la red que básicamente son muy parecidos a los que mostró seoane y el inconveniente que tengo es que no puedo hacer que estén "encendidos" indefinidamente, tiene una variable rara con un "TimeOut" pero por mas que le pongas "Infinite" o algún numero grande, el globo se desvanece igual de rápido.. alguna idea??, uso delphi 7

Este es el código...
Está en crudo así que hay constantes que no se usan.. pero no las quité..

desde ya muchas gracias.


Código Delphi [-]

const
  WM_MYMEMO_ENTER = WM_USER + 500;
  WM_ICONTRAY  =    WM_USER + 1;

  NIF_INFO = $10;
  NIF_MESSAGE = 1;
  NIF_ICON = 2;
  NOTIFYICON_VERSION = 3;
  NIF_TIP = 4;
  NIM_SETVERSION = $00000004;
  NIM_SETFOCUS = $00000003;
  NIIF_INFO = $00000001;
  NIIF_WARNING = $00000002;
  NIIF_ERROR = $00000003;

  NIN_BALLOONSHOW = WM_USER + 2;
  NIN_BALLOONHIDE = WM_USER + 3;
  NIN_BALLOONTIMEOUT = WM_USER + 4;
  NIN_BALLOONUSERCLICK = WM_USER + 5;
  NIN_SELECT = WM_USER + 0;
  NINF_KEY = $1;
  NIN_KEYSELECT = NIN_SELECT or NINF_KEY;



  TNewNotifyIconData = record
    cbSize: DWORD;
    Wnd: HWND;
    uID: UINT;
    uFlags: UINT;
    uCallbackMessage: UINT;
    hIcon: HICON;
   //Version 5.0 is 128 chars, old ver is 64 chars
    szTip: array [0..127] of Char;
    dwState: DWORD; //Version 5.0
    dwStateMask: DWORD; //Version 5.0
    szInfo: array [0..255] of Char; //Version 5.0
    DUMMYUNIONNAME: TDUMMYUNIONNAME;
    szInfoTitle: array [0..63] of Char; //Version 5.0
    dwInfoFlags: DWORD;   //Version 5.0
  end;


{ShowBalloonTips procedure carry out the new feature: Balloon Tips}
procedure TForm1.ShowBalloonTips;
var
  TipInfo, TipTitle: string;
begin
  IconData.cbSize := SizeOf(IconData);
  IconData.uFlags := NIF_INFO;
  TipInfo := 'Esto es una prueba del texto que se puede poner en el globo emergente: http://www.ajpdsoft.com';
  strPLCopy(IconData.szInfo, TipInfo, SizeOf(IconData.szInfo) - 1);
  IconData.DUMMYUNIONNAME.uTimeout := 30000;
  TipTitle := 'Este sería el título del globo';
  strPLCopy(IconData.szInfoTitle, TipTitle, SizeOf(IconData.szInfoTitle) - 1);
  IconData.dwInfoFlags := NIIF_INFO;     //NIIF_ERROR;  //NIIF_WARNING;
  Shell_NotifyIcon(NIM_MODIFY, @IconData);
  {in my testing, the following code has no use}
  IconData.DUMMYUNIONNAME.uVersion := NOTIFYICON_VERSION;
  if not Shell_NotifyIcon(NIM_SETVERSION, @IconData) then
    ShowMessage('Ha fallado la creación del icono en la barra de notificación.');
end;

Lepe 04-04-2014 14:24:33

No tengo la respuesta, pero si haces ese programa, yo seré uno de los que te maldiga eternamente :D. ¿Por qué quieres que sea indefinido? Ese es el área de notificación y su forma de funcionar es exactamente esa (que se oculte pasado un tiempo). Si necesitas que el usuario pulse para dar conformidad a algo, pon un diálogo ShowModal.

Saludos

FENIXadr 04-04-2014 21:48:35

:eek::eek::eek:.... no me odies Lepe.. :o.. no... la cosa es la siguiente.. me hice una pequeña herramienta que me avisa de los cambios en el registro y me parecio muy prolijo y esteticamente agradable el hecho de mostrar en los globos de la barra de tareas los cambios que se produzcan en el registro de windows, el inconveniente es que si en ese momento no estas presente o por algun motivo no ves el globo, se desvanecera y no te daras cuenta del cambio hasta que decidas ver por tu cuenta la herramienta.. aunque parezca molesto me parece justificado el hecho de mostrar un globo y que hasta que no lo cierres este alertandote del problema.. por el momento voy a implementar un Timer que te avise cada 5 o 10 minutos (no se bien el tiempo aun) de alguna alerta que no hayas corroborado...

saludos.

Lepe 05-04-2014 18:59:32

¿Ves? Eso ya me gusta más ;)

También podrías mostrar una pila de avisos (si el usuario no lo ha cerrado o pulsado un botón como que se ha enterado), pones varios avisos unos sobre otros y un botón "leído todos los avisos" o algo así.

De todas formas creo ese programa debe tener un log con todos los avisos que ha detectado. Aunque supongo ya has pensado en ello también.

Saludos

FENIXadr 05-04-2014 19:48:11

si si ... en realidad el globo sería para el último aviso detectado porque va quedando justamente un log con todo el historial de cambios, además el icono de la barra de tareas cambia de color segun el estado..

Saludos.


La franja horaria es GMT +2. Ahora son las 12:53:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi