FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
como usar el BalloonTip
Hola amigos
en este post Chris me indica que use BalloonTip en ves de mensajes de dialogo y realmente cuando lo piensas tiene toda la razón, como ese post se había abierto por otra razón entonces abro este con la siguiente pregunta Como uso el BalloonTip en c++ builder ? Busque en internet y no encontré mucho excepto algunos ejemplo de como implementarlo sobre el TryIcon y aquí en el club no hay ningún post en c++ que trate el tema. Chris posteo un ejemplo pero esta escrito en Delphi y no he podido encontrar la forma de hacerlo en c++. Cita:
Gracias de antemano por su ayuda
__________________
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_ ________________________________________________________________________________ |
#2
|
||||
|
||||
Puedes consultar este hilo en CodeGuru http://www.codeguru.com/forum/showthread.php?t=478992 está en inglés.
Además, la API de Windows tiene un macro llamado Edit_ShowBalloonTip. Lee la documentación oficial. Talvez te ayuda a realizarla http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx Saludos! |
#3
|
||||
|
||||
Hola Impadron.
No he usado los BalloonTip ni en Delphi ni en Builder C++. La primera traducción que intenté no me resultó: Código:
typedef struct tagEDITBALLOONTIP { DWORD cbStruct; LPCWSTR pszTitle; LPCWSTR pszText; INT ttiIcon; } EDITBALLOONTIP, *PEDITBALLOONTIP; void __fastcall TForm1::Button1Click(TObject *Sender) { EDITBALLOONTIP ebt; ebt.cbStruct = sizeof(EDITBALLOONTIP); ebt.pszTitle = (wchar_t *)"B es mayor que C"; ebt.pszText = (wchar_t *)"TODO: EXPLICAR POR QUE B NO PUEDE SER MAYOR QUE C"; ebt.ttiIcon = TTI_INFO; SendMessage(Edit1->Handle, EM_SHOWBALLOONTIP, 0, (LPARAM) &ebt); } Código:
void ShowBalloonTip(TWinControl *Control,int Icon, char *Title, char *Text, TColor BackColor, TColor TextColor) { HWND hWndTip; TOOLINFO ti; HWND hWnd; TPoint p; p.x = Control->Left + Control->Width - 5; p.y = Control->Top + 5; Mouse->CursorPos = Control->Parent->ClientToScreen(p); hWnd = Control->Handle; hWndTip = CreateWindow(TOOLTIPS_CLASS, NULL, WS_POPUP | TTS_NOPREFIX | TTS_BALLOON | TTS_ALWAYSTIP, 0, 0, 0, 0, hWnd, 0, HInstance, NULL); if( hWndTip ) { SetWindowPos(hWndTip, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE); ti.cbSize = sizeof(ti); ti.uFlags = TTF_CENTERTIP | TTF_TRANSPARENT | TTF_SUBCLASS; ti.hwnd = hWnd; ti.lpszText = Text; GetClientRect(hWnd, &ti.rect); SendMessage(hWndTip, TTM_SETTIPBKCOLOR, BackColor, 0); SendMessage(hWndTip, TTM_SETTIPTEXTCOLOR, TextColor, 0); SendMessage(hWndTip, TTM_ADDTOOL, 1, (int) &ti); SendMessage(hWndTip, TTM_SETTITLE, Icon % 4, (int)Title); } } void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { if (Key < '0' || Key > '5') { // evaluación trivial ShowBalloonTip(Edit1, 1, "ERROR", "Sólo números del 0 al 5", clYellow, clBlack); Key = 0; } } ... Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 24-02-2012 a las 02:32:12. |
#4
|
||||
|
||||
Cita:
A menos, claro, que el valor no tenga importancia, y el proceso pueda seguir sin estar correcto. Por otra parte, aún suponiendo que de verdad necesitas cotejar mientras se escribe, basta que pongas un Label a un lado del Edit con una pequeña indicación mientras no se cumpla el requisito: Código:
[ 84] (el valor es mayor que 10) |
#5
|
||||
|
||||
Cita:
Mostrar un BalloonTip sobre el campo que está dando el problema y en el momento que se da el problema es como cuando te registras en un servicio web y el campo de "nombre de usario" te dice si ese nombre está disponible mientras lo vas escribiendo. Es algo mucho más usable y amigable con el usuario. ¿No te parecería incomodo un formulario de varias páginas, que al completar la última te diga que dejaste algo mal colocado en la primera? Otro de los problemas con los MessageBox es que los usuarios no los leen. Saludos! |
#6
|
||||
|
||||
Cita:
Cita:
Cita:
Y, ¿por qué sí habrían de leer los globitos? Yo creo que aquí estamos más bien hablando de dos estrategias de validación de datos: validar en cada campo o validar todos los campos al final. Y no creo que inherentemente una sea mejor que otra. Como tú lo propones, creo, sería por ejemplo mantener inhabilitado el botón OK mientras los datos no estén todos correctos. De todas maneras, los globos son demasiado distractores para mi gusto. // Saludos |
#7
|
||||
|
||||
Pues de ese modo definitivamente se logra sin problemas
Cita:
Cita:
muchas gracias a todos por su ayuda
__________________
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_ ________________________________________________________________________________ |
#8
|
||||
|
||||
Pues hablando del tema, estoy usando "globitos" (perdón Roman, jeje, a mi si me parecen más estéticos en esta aplicación que estoy haciendo, aunque no para todos los casos).
Mi problema es que cuando en el OnKeyPress pongo la instruccion
Mi problema principal es que el "globito" sale en la parte superior izquiera de la pantalla, y no sobre el edit sobre el que estoy ejecutando el ShowHint. ¿Alguna idea de como hacerle para que aparezca sobre el componente Edit? Gracias.
__________________
Javier Oros dice: Deus nobiscum, quis contra nos |
#9
|
||||
|
||||
No sé de dónde viene ni que hace `BalloonHint.ShowHint´. El código de ese procedimiento es el que hay que depurar. Por otro lado, has probado el código que me citan al inicio de este hilo?
Saludos! |
#10
|
||||
|
||||
BalloonHint.ShowHint hace que, en ese caso pasrticular, el globito aparezca cuando se teclea otra cosa que no sea un número, un punto, una compa o la tecla retroceso, y funciona, pero no como espero, ya que el globito aparece en la parte superior izquierda de la pantalla.
A tu otra pregunta, no, no he probado el código, lo voy a hacer y luego posteo aquí, tengo que hacer algo por el momento más importante
__________________
Javier Oros dice: Deus nobiscum, quis contra nos |
#11
|
||||
|
||||
Cuando Chris pregunta por el significado de BalloonHint.ShowHint lo está haciendo pensando que usas algún componente o clase (TBalloonHint por ejemplo) que no mencionas. No siendo API y no conociendo dicho componente o clase, no se te puede contestar. Lee la documentación de ese componente o clase.
Saludos. |
#12
|
|||
|
|||
Cita:
Asumiendo que es un componente TBalloonHint te puedo decir que en la llamada a BalloonHint.ShowHint puedes pasar como parámetro el punto donde quieres que se muestre "Parámetro de tipo Tpoint". Ej.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como usar RANDOMIZE | yessika19 | Varios | 6 | 24-10-2018 12:20:13 |
como usar una imagen como boton? | negrokau | Varios | 5 | 20-05-2011 16:54:26 |
como usar tabcontrol??? | RedVenom | Varios | 6 | 03-04-2011 20:26:17 |
Balloontip con icono propio, se puede? | Cheerpipe | API de Windows | 2 | 21-04-2009 18:26:14 |
Cómo usar una dll | masetru | Varios | 1 | 20-12-2003 14:15:50 |
|