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

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 23-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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);
}
Sin embargo, de este modo logré el efecto:
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;
  }
}
...
Aunque dada mi inexperiencia con los BalloonTip, seguramente te darán una mejor propuesta.

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.
Responder Con Cita
 



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
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


La franja horaria es GMT +2. Ahora son las 03:05:21.


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