Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Mostrar Balloon en TrayIcon (https://www.clubdelphi.com/foros/showthread.php?t=86947)

aguml 25-10-2014 23:24:39

Mostrar Balloon en TrayIcon
 
Hola amigos, lo que pretendo es que la aplicacion se oculte y aparezca un TrayIcon en la barra de tareas y al aparecer la TrayIcon muestre un Balloon y es ahi donde no doy con el modo de conseguirlo. ¿alguien me puede ayudar en eso?
Buscando por la red he visto que hacen esto en C++Builder:
Código PHP:

//TrayIcon->BalloonTitle = "Trabajando...";
//TrayIcon->BalloonHint = "La aplicación está realizando la operacion solicitada. Espera a que termine";
//TrayIcon1->BalloonFlags = bfInfo; 

No se en que version lo harán porque en C++Builder no existen esas propiedades. ¿como puedo hacerlo en C++Builder 6?

escafandra 26-10-2014 00:36:48

Prueba este componente: SysTrayIcon trabaja con mensajes tipo Balloon, iconos animados en el systray, permite esconder de la barra de tareas nuestra app y reastaurarla.


Saludos.

aguml 26-10-2014 01:02:47

gracias amigos, es genial que alguien que haya pensado en ello y lo haya solucionado lo comparta. Mañana lo pruebo y cuento que tal me fue.

aguml 26-10-2014 10:45:57

Amigo ¿como instalo el componente que indicas? he visto el demo y es justo lo que quiero pero no se como instalar el componente en la barra de tareas.

escafandra 26-10-2014 12:00:39

En el hilo que abrí para publicar el componente, indico como instalarlo desde el mismo Builder, mediante el menú Component > Install Component. En el nombre de la unit pones la ruta completa del archivo SysTrayIcon.cpp.

Saludos.

aguml 26-10-2014 14:31:32

Una cosa amigo, ¿tengo que guardar los archivos del componente en algun sitio permanentemente? ¿o una vez instalado no necesito esos archivos?
Otra cosa ¿donde se instala? lo he instalado y no lo encuentro por ningun sitio :-/

aguml 26-10-2014 15:03:39

Vale amigo, ya lo he instalado y he hecho la prueba que queria hacer:
Código PHP:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   
SysTrayIcon1->Minimize();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SysTrayIcon1Minimize(TObject *Sender)
{
   
Form1->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SysTrayIcon1Click(TObject *Sender)
{
   
SysTrayIcon1->Restore();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SysTrayIcon1Restore(TObject *Sender)
{
   
Form1->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormHide(TObject *Sender)
{
   
SysTrayIcon1->ShowBalloon("Titulo","Texto");
}
//--------------------------------------------------------------------------- 

Si lo pruebas veras que va genial la primera vez pero una vez haces clic en el TrayIcon y vuelves a probar ves que no se oculta la pestaña del proceso en la barra de tareas pero si aparece el bocadillo. ¿que puede estar pasando?

aguml 26-10-2014 16:58:15

Solucionado, he visto bien como lo hacias tu en el demo y lo he puesto igual y va joya.
Otra cosa amigo, ¿de donde sacastes los iconos para la animación? ¿tiene que ser de algun tipo especifico (.bmp, .ico, .gif...)?

escafandra 27-10-2014 00:19:24

Veo que te has ido respondiendo las preguntas. Para aclararte lo de los iconos lee esto y experimenta.


Saludos.

aguml 09-04-2020 02:09:11

Sé que este post es bastante antiguo pero no veo otro sitio mejor para preguntar.
Escafandra he estado mucho tiempo sin pc y a los años tengo uno y estoy intentando desempolvar proyectos y ahora tengo instalado Embarcadero 2010 y no veo la manera de instalar tu componente en el c++ builder. He probado todo lo que se me ocurrió y no sé cómo hacerlo ¿Podrías ayudarme? Gracias.

escafandra 09-04-2020 18:11:54

No C++Builder 2010 pero no creo que sea muy distinto a instalarlo en Berlin.

He visto algún problema a la hora de compilar en Berlin:
1. Un Aviso por el uno de StrPLCopy que es obsoleta
2. Problema de Unicode con TNotifyIconData
3. Problema al esconder el icono de la Barra de tareas.

Todos los problemas están solucionados en la actualización TSysTrayIcon 4 para C++Builder que publico hoy

La forma de instalar el componente es similar a otras veces:
Menu->Component->Install Component Se escoge el archivo SysTrayIcon.cpp y elegir un Package Name


Para más información y descarga puedes visitar el hilo original del componente aquí.




Saludos.

escafandra 09-04-2020 21:36:12

Aprovecho para adaptar el componente para delphi Berlin. Para los que usen delphi y Builder, quizás sea más interesante instalas la versión delphi, que podrá usarse en Builder C++ sin problemas, así se evita la duplicidad del componente, cosa no permitida.


Saludos.

aguml 11-04-2020 17:10:14

Muchas gracias. Luego lo intento a ver qué tal me va y te digo.

aguml 11-04-2020 19:06:24

Amigo lo he intentado instalar pero se ve que algo ha cambiado en el modo de instalarlo. Voy a Component y me aparecen las opciones ”New VCL Component", "Create Component Template" (desactivado), "Install Packages", "Import Component", y "Import WSDL".
En "Install Packages" aparece una lista de componentes para instalar.
En "Import Component" tengo 3 opciones: Impirt a type library, Import ActiveX Control, Import .Net Assembly. Si lo intento por aquí me da error porque busca un dll o ocx.
Y en "Import WSDL" tampoco he podido.

escafandra 12-04-2020 00:36:54

Tanto en BCB5, como BCB6 como Berlin, aparece la opción Install Component. Lo mismo ocurre en las distintas opciones de delphi que tengo. En tu versión ya no que que decirte pero no es lógico que en una versión intermedia desaparezca. Intenta a ver si lo han puesto en New Component y te dan la opción de usar un fuente ya escrito (SysTrayIcon.cpp). Otra sería compilarlo en Berlin y exportar el package a tu versión pero no se si la aceptará, me temo que no.


Saludos.

aguml 13-04-2020 15:33:44

Lo he intentado desde Install component pero como dije sale una lista con los diferentes tipos de componentes y tienes que dar en alguno y en mi caso he elegido uno de tipo TComponent, una vez hago eso doy a siguiente y me sale una ventana donde elijo Class Name, Palette Page, Unit Name, y Search Path. Yo he puesto como nombre TSysTrayIcon, como paleta he elegido MIOS, como Unit Name le doy a los 3 puntos y elijo el .cpp de tu componente, y en Search Path no pongo nada y me crea un archivo .cpp con esto:
Código PHP:

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "SysTrayIcon.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
//

static inline void ValidCtrCheck(TSysTrayIcon *)
{
    new 
TSysTrayIcon(NULL);
}
//---------------------------------------------------------------------------
__fastcall TSysTrayIcon::TSysTrayIcon(TComponentOwner)
    : 
TComponent(Owner)
{
}
//---------------------------------------------------------------------------
namespace Systrayicon
{
    
void __fastcall PACKAGE Register()
    {
        
TComponentClass classes[1] = {__classid(TSysTrayIcon)};
        
RegisterComponents(L"MIOS"classes0);
    }
}
//--------------------------------------------------------------------------- 

Y ahí ya me paro porque no creo que vaya bien y porque no se que mas hacer :(
No aparece la paleta MIOS ni nada.

escafandra 13-04-2020 18:56:41

Esa opción es el wizard para crear un componente desde cero. A las malas lo puedes hacer y copiar el código del componente en ese nuevo... pero no me puedo creer que no tengas la opción de instalar componente. todas las versiones lo traen :eek:

El proyecto del Package del componente es el archivo mios.cbproj que está en la descarga, trata de abrirlo a ver si es compatible con tu versión BCB



Saludos.


La franja horaria es GMT +2. Ahora son las 00:28:10.

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