Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-03-2009
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
Question Duda con TrayIcon

Saludos a todos los del Foros

Tengo una duda que quizas alguno de ustedes me puedan ayudar el problema es que yo inserto en mi Form un TrayIcon y un ImageList...
- En el ImageList inserto varias imagenes,
- En el TrayIcon pongo su Propiedad ...
Icons=ImageList1;
Animate=true;

Pero cuando ejecuto mi aplicacion el icono enpieza animarze pero cuando llega a la ultima imagen que yo puse que va a empezar por la primera se queda un momento en blanco,

Si alguien supiera como solucionar esto se lo agradeceria mucho, seguro estoy que otras personas tambien lo agradecerian.

[Saludo]...
Responder Con Cita
  #2  
Antiguo 02-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
yelian, asumiendo que el TTrayIcon al que te refieres es el ejemplo que viene en el Builder, y teniendo claro este asunto para los interesados en este hilo, te diré que ese Componente no es mas que un ejemplo de como implementarlos en C++ Builder. Como ejemplo, puede estar un poco deficitario y de hecho lo está.

El problema que expones se deriva de un bug, si así queremos considerarlo.

En el código fuente podemos encontrar la función miembro que se encarga de animar el cursor:
Código:
//---------------------------------------------------------------------------
void __fastcall TTrayIcon::DoOnAnimate(TObject *Sender)
{
   if (IconIndex < FIconList->Count)
      FIconIndex++;
   else
      FIconIndex = 0;

   SetIconIndex(FIconIndex);
   Update();
}
Si te fijas, la condición de fin de iconos es incorrecta, pues tras incrementar el indice FIconIndex, éste puede ser igual a FIconList->Count. Es decir apunta a un icono que no existe. Este es el motivo de que desaparezca el icono entre el último y el primero.

Para corregir este bug, basta con dejarlo así:
Código:
//---------------------------------------------------------------------------
void __fastcall TTrayIcon::DoOnAnimate(TObject *Sender)
{
   if (IconIndex < FIconList->Count - 1)
      FIconIndex++;
   else
      FIconIndex = 0;

   SetIconIndex(FIconIndex);
   Update();
}
Saludos.

Última edición por escafandra fecha: 02-03-2009 a las 19:28:57.
Responder Con Cita
  #3  
Antiguo 04-03-2009
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
Gracias escafandra;

Pero donde pongo ese codico que me diste estuve buscando pero no encontre donde se pone, si fueras tan amable de decirme...
Responder Con Cita
  #4  
Antiguo 04-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
CBuilder\Examples\Controls\Source\trayicon.cpp

Saludos.
Responder Con Cita
  #5  
Antiguo 05-03-2009
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
Gracias escafandra, que bobo soy no me fije que era en el evento OnAnimate

gracias...
Responder Con Cita
  #6  
Antiguo 09-03-2009
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
MOstrar Ballonhint en TrayIcon

Buenas tardes,
Escanfandra! volvemos a encontrarnos,,,
Hablando ahora de trayicons, necesito saber que componente para C++ Builder 6 podria utilizar para obtener un ballonhint en el trayicon.

luego que pueda darle click, y ejecute alguna opción,

He intentado con el de LMDtrayicon, y con el Trayicon y ninguno tiene el metodo ShowHint,,,,,,cual lo tiene??'
Gracias!!
Responder Con Cita
  #7  
Antiguo 10-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
El TtrayIcon que viene de ejemplo con el Builder 5, e imagino que será similar al Builder 6, No puede representar balones de texto estilo XP, pero si muestra el Hint clásico.

Para mostrar un balón de texto, añade una nueva función miembro publica:
Código:
//---------------------------------------------------------------------------
// Muestra un Balón de texto en el icono de la barra de tareas
//---------------------------------------------------------------------------
void __fastcall TTaskBarIcon::ShowBalloon(AnsiString Titulo, AnsiString Texto)
{
   FData.cbSize = sizeof(FData);
   FData.uFlags = NIF_ICON | NIF_INFO;
   strcpy(FData.szInfoTitle, Titulo.c_str());
   strcpy(FData.szInfo, Texto.c_str());
   FData.dwInfoFlags = NIIF_INFO;

   Shell_NotifyIcon(NIM_MODIFY, &FData);
}
Para usar esta función, sólo debes llamarla cuando te interese mostrar algo.
Al hacer click no realiza ninguna acción. Puedes representar menus para ello.

Saludos.
Responder Con Cita
  #8  
Antiguo 10-03-2009
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Muchas Gracias!!

Muchas gracias,
Dos preguntas:

1. Me esta saliendo undefined symbol Fdata, debo incluir algo mas?

2. Si quisiera adicionarle un evento de click al ballonhint, se podría hacer de alguna manera?

Muchas gracias!!!!
Responder Con Cita
  #9  
Antiguo 10-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
JuanErasmo, Esa función debes colocarla como función miembro de TTrayIcon del ejemplo del Builder, es decir modificar el fuente y la cabecera para añadir la función que en tu caso se debería llamar:

Código:
void __fastcall TTrayIcon::ShowBalloon(AnsiString Titulo, AnsiString Texto)
Cita:
undefined symbol Fdata

Fdata
es una propiedad privada de TTrayIcon. Si el código no lo añadiste al componente, lógicamente no está definido.

Este balón no es sensible a eventos.

Saludos.

Última edición por escafandra fecha: 10-03-2009 a las 16:08:40.
Responder Con Cita
  #10  
Antiguo 10-03-2009
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
No entiendo como se puede hacer,,,,
abrí el demo de Trayicon, pero no veo la forma de integrar lo que me dices....

Gracias!
Responder Con Cita
  #11  
Antiguo 10-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Pues si sigues la pista encontraras la fuente.

Saludos.
Responder Con Cita
  #12  
Antiguo 10-03-2009
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Hé modificado estas fuentes,

Hola,
hé modificado las fuentes, pero no he conseguido invocar la función, agregué en el trayicon.cpp la funcion, y en el trayicon.h la definición,
pero cuando intento llamar el metodo no es visible....
estoy modificando el demo de builder, pero no consigo nada,,,,
me falta modificar algun otro archivo?

Gracias!
Responder Con Cita
  #13  
Antiguo 10-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
El proyecto de los controles de ejemplo se llama bcbsmp50.bpk, al menos en mi BCB 5.

Una vez añadida la función, complia el proyecto y usa el control visual como otro mas.... Me dices como te ha ido.

Saludos.
Responder Con Cita
  #14  
Antiguo 11-03-2009
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Gracias amigos no formaba parte de este debate pero he estado al tanto de el, y de paso así decirlo, he podido resolver algunos problemillas que tenia GRACIAS a todos
Escafandra
Juan Eramos
Yelian
Por las respuestas y por las preguntas jajajajajajaja. ;-)
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #15  
Antiguo 14-04-2009
fedee fedee is offline
Miembro
 
Registrado: feb 2009
Posts: 14
Poder: 0
fedee Va por buen camino
Ayuda Con Trayicon

busqué por todos lados y no encontré como hacerlo en mi programa hecho en c++ builder!

alguien me ayuda? necesitaría q al minimizarse se oculte en la barra de tareas!
Responder Con Cita
  #16  
Antiguo 14-04-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
¿Ocultar de la barra de tareas?
Código:
Visible = false;
Saludos.
Responder Con Cita
  #17  
Antiguo 14-04-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Perdón, no te entendí bien. ¿Te refieres al uso del TrayIcon?. ¿Quieres que al minimizar tu aplicación no aparezca en la barra de tareas pero si en el SysTry?.

Bueno, si las respuestas son afirmativas, entonces debes realizar lo siguiente:

Cambia esta función:
Código:
void __fastcall TTrayIcon::Minimize()
{
   Application->Minimize();
   ShowWindow(Application->Handle, SW_HIDE);

   if (FOnMinimize)
      FOnMinimize(this);
}
Por esta otra:
Código:
void __fastcall TTrayIcon::Minimize()
{
   Application->Minimize();

   if(FHide)
      ShowWindow(Application->Handle, SW_HIDE);

   if (FOnMinimize)
      FOnMinimize(this);
}
Esto hará que al minimizar tu aplicación, si la propiedad Hide del TrayIcon es true, se esconda de la barra de tareas y no lo haga en caso contrario.

Saludos.
Responder Con Cita
  #18  
Antiguo 14-04-2009
fedee fedee is offline
Miembro
 
Registrado: feb 2009
Posts: 14
Poder: 0
fedee Va por buen camino
no entendi, pero si te paso mi fuente me lo haces?
Responder Con Cita
  #19  
Antiguo 14-04-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Lee esto.

Saludos.
Responder Con Cita
  #20  
Antiguo 14-04-2009
fedee fedee is offline
Miembro
 
Registrado: feb 2009
Posts: 14
Poder: 0
fedee Va por buen camino
soy nuevo, no sabia de la existencia de ese tipo de rules.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TrayIcon y su Popup gluglu Varios 17 01-11-2011 21:36:37
Trayicon en D7 Cecilio Varios 4 27-12-2008 15:59:36
TrayIcon y PopupMenu gluglu API de Windows 1 24-07-2008 00:19:43
Trayicon mjjj Varios 2 21-09-2007 00:35:16
Problemas con TRAYICON!! marceloalegre Varios 3 07-06-2005 17:49:07


La franja horaria es GMT +2. Ahora son las 21:36:50.


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
Copyright 1996-2007 Club Delphi