Comunidad Delphiaccess

Por favor ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión

Noticias y Eventos:




Autor Tema: Crear tu propio Balloon Tips  (Leído 832 veces)

0 Usuarios y 1 Visitante están viendo este tema.

« en: 14 de Noviembre de 2008, 16:24:06 »
En línea

enecumene

  • Administrador
  • ******
  • Calificaciones: +151/-1
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 3,750
  • Gracias
  • -Dados: 155
  • -Recibidos: 106
  • DA Webmaster
Crear tu propio Balloon Tips
« en: 14 de Noviembre de 2008, 16:24:06 »
Este truco nos enseña como crear nuestro propio Balloon Tips (Globo de Notas), está probado en Delphi 7.

Colocar en el Uses lo siguiente:

Código: [Seleccionar]
uses
  Commctrl;

Debajo del Implementation:

Código: [Seleccionar]
procedure ShowBalloonTip(Control: TWinControl; Icon: integer; Title: pchar; Text: PWideChar;
BackCL, TextCL: TColor);
const
 TOOLTIPS_CLASS = 'tooltips_class32';
 TTS_ALWAYSTIP = $01;
 TTS_NOPREFIX = $02;
 TTS_BALLOON = $40;
 TTF_SUBCLASS = $0010;
 TTF_TRANSPARENT = $0100;
 TTF_CENTERTIP = $0002;
 TTM_ADDTOOL = $0400 + 50;
 TTM_SETTITLE = (WM_USER + 32);
 ICC_WIN95_CLASSES = $000000FF;
type
 TOOLINFO = packed record
   cbSize: Integer;
   uFlags: Integer;
   hwnd: THandle;
   uId: Integer;
   rect: TRect;
   hinst: THandle;
   lpszText: PWideChar;
   lParam: Integer;
 end;
var
 hWndTip: THandle;
 ti: TOOLINFO;
 hWnd: THandle;
begin
 hWnd    := Control.Handle;
 hWndTip := CreateWindow(TOOLTIPS_CLASS, nil,
   WS_POPUP or TTS_NOPREFIX or TTS_BALLOON or TTS_ALWAYSTIP,
   0, 0, 0, 0, hWnd, 0, HInstance, nil);
 if hWndTip <> 0 then
 begin
   SetWindowPos(hWndTip, HWND_TOPMOST, 0, 0, 0, 0,
     SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
   ti.cbSize := SizeOf(ti);
   ti.uFlags := TTF_CENTERTIP or TTF_TRANSPARENT or TTF_SUBCLASS;
   ti.hwnd := hWnd;
   ti.lpszText := Text;
   Windows.GetClientRect(hWnd, ti.rect);
   SendMessage(hWndTip, TTM_SETTIPBKCOLOR, BackCL, 0);
   SendMessage(hWndTip, TTM_SETTIPTEXTCOLOR, TextCL, 0);
   SendMessage(hWndTip, TTM_ADDTOOL, 1, Integer(@ti));
   SendMessage(hWndTip, TTM_SETTITLE, Icon mod 4, Integer(Title));
 end;
end;

Forma de Uso:

Código: [Seleccionar]
procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowBalloonTip(Button1, 1, 'Titulo',
 'Texto', clCream, clBlack);
end;

Resultado:



Saludos.

Si tenéis alguna duda por favor haced un hilo con gusto os ayudamos.
« última modificación: 15 de Noviembre de 2008, 09:28:11 por Caral »


 


Página generada en 0.547 segundos con 29 consultas.