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)
-   -   Balloon de texto (https://www.clubdelphi.com/foros/showthread.php?t=36613)

aeff 18-10-2006 15:19:02

Balloon de texto
 
Hola a todos los exploradores del foro del ClubDelphi, necesito saber si alguien me puede ayudar a hacer lo siguiente:

-> Mostrar un ballon de texto de los que salen desde un ícono del SystemTray, ya sea como advertencia, error o información.(en Delphi 5)

Nota: en C++Builder 6 lo puedo hacer fácil porque el registro "TNotifyIconData" tiene más campos que en Delphi 5, es posible que sea porque la API Shell_NotifyIcon no tenia esa función incorporada cuando salió Delphi 5, de todos modos,

gracias de antemano...

jachguate 18-10-2006 17:41:35

Si conoces las llamadas al API para hacer esto, podes crear vos mismo una unidad que las realice y utilizar esta para tu propósito, aún en delphi 3.

Hasta luego.

;)

aeff 18-10-2006 20:48:29

Amigo(s), el problema no es hacer una unidad para que realice esta función, la puedo hacer pero no con la calidad de la original, el problema es que necesito que sea la función Shell_NotifyIcon, de Windows, la que muestre este balloon de texto, en C++Builder 6 la estructura TNotifyIconData tiene los siguientes parámetros:

DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
CHAR szTip[64];
CHAR szTip[128];
DWORD dwState;
DWORD dwStateMask;
CHAR szInfo[256];
UINT uTimeout;
UINT uVersion;
CHAR szInfoTitle[64];
DWORD dwInfoFlags;
GUID guidItem;

pero en Delphi 5 solo se han declarado los siguientes:

cbSize: DWORD;
Wnd: HWND;
uID: UINT;
uFlags: UINT;
uCallbackMessage: UINT;
hIcon: HICON;
szTip: array [0..63] of AnsiChar;

es decir, en Delphi 5 faltan parámetros en esta estructura, TNotifyIconData, y precisamente los que faltan son los que le indican a la función Shell_NotifyIconData las descripciones del balloon de texto.

por lo que necesito que alguien me ayude a hacer esto en Delphi 5, una vez lo intenté pero no me dió resultado.

Gracias nuevamente de antemano...

jachguate 18-10-2006 22:13:15

Quizas no me supe explicar bien. NO me refería a que hagas una notificación similar a la del ballon, construyendo una ventana y todo eso... a lo que me refiería es a que podes hacer vos una unidad que haga las declaraciones necesarias, que tal una TaeffNotifyIconData y que en esa unidad también importes las rutinas que haga falta del API para realizar la llamada usando tu estructura y no la original de delphi.

¿me explico ahora?

Hasta luego.

;)

seoane 18-10-2006 22:41:52

Para empezar aquí te dejo como declarar la estructura TNotifyIconData:
Código Delphi [-]
type

  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;

Las funciones son las mismas, al usar la nueva estructura y asignar el campo cbSize correctamente windows ya se da por enterado de que quieres usar los nuevos balones. Creo que ya no te hace falta nada mas, puede que alguna de estas constantes:

Código Delphi [-]
const
  NIF_INFO =  $00000010;
  NIIF_NONE = $00000000;
  NIIF_INFO = $00000001;
  NIIF_WARNING = $00000002;
  NIIF_ERROR = $00000003;

Zeta 18-10-2006 23:02:32

Podrías probar con la suite de componentes JediVCL, que en la paleta NonVisual tiene un componente que se llama "JvBalloonHint" y es el tipo de ballonHint que buscas y se puede utilizar cambiando la propiedad "UseBallonAsApplicationHint" a true, y lo demás creo que lo sabes manejar bien.

Podrías bajarte el exe (el Mega Demo) con los ejemplos y allí podrás ver todo lo que JediVCL te ofrece
http://sourceforge.net/project/showf...group_id=45786


Saludos

aeff 18-10-2006 23:55:41

Oye mister!!! muuuuuuuuuchaaaaaaaaaaaas gracias por haberme ayudado con este problema, te agradezco a ti a todos los que han colaborado para darme una respuesta.

su compañero del ClubDelphi, AEFF...

JXJ 19-10-2006 00:52:08

El JvBalloonHint '¿Funciona, solamente, en los Windows XP o tambien
en windows 98, 95?


recuerdo lei que solo funciona en windows xp
o en windows NT, windows 2000
por que en esos Sistemas operativos, se implemento.
el mecanismo de mostrar el globito. balloon

vale gracias

aeff 19-10-2006 01:03:10

Ok mister!!! gracias por la aclaración, solo tengo que calcular si el programa se está ejecutando sobre el subsistema Win32,

Hasta luego, aeff!!!

Zeta 19-10-2006 21:17:51

En win98 funciona OK.
Me imagino que en win95 también, pero yo recomendaría por muchas cosas (seguridad) pasarse a un SO más nuevo, aunque es relativo.

Ahh, si querías el TrayIcon, en la misma paleta está el JvTrayIcon, que es lo que creo que también necesitabas.


Saludos

aeff 20-10-2006 02:26:38

Dando las gracias
 
gracias por todo, de todas maneras ya resolví el problema...


La franja horaria es GMT +2. Ahora son las 00:44:05.

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