Código
//copie o codigo abaixo na integra substituindo o codigo automatico gerado pelo delphi
//coloque no seu form um memo um list box 2 edits um button e uma string grid
//agora e só rodar o programa e parar o mouse sosbre os components
//repare que comentei a declaração dos objetos, para quando vc inserir pelo delphi não dar erro dizendo que já existe
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Commctrl, Menus, StdCtrls, Grids;
const
TTS_BALLOON = $40;
TTM_SETTITLE = (WM_USER + 32);
type
TForm1 = class(TForm)
//Memo1: TMemo;
//ListBox1: TListBox;
//Edit1: TEdit;
//Edit2: TEdit;
//Button1: TButton;
//StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function CriaToolTip(WndParent: HWnd; TipoIcone: Integer; Titulo: PChar): HWND;
begin // Cria a janela balão
Result := CreateWindowEx(0, 'Tooltips_Class32', nil, TTS_ALWAYSTIP or
TTS_BALLOON, Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), WndParent, 0, hInstance,
nil);
// Traz a janela para a frente
if Result <> 0 then
begin
SetWindowPos(Result, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or
SWP_NOACTIVATE);
// Configura o título e ícone da dica
if (TipoIcone > 3) or (TipoIcone < 0) then
TipoIcone := 0;
SendMessage(Result, TTM_SETTITLE, TipoIcone, Integer(Titulo));
end;
end;
//Para atribuir a janela de dica a um componente, usamos a função AdicionaToolTip:
procedure AdicionaToolTip(Window, ToolTip: HWND; Texto: PChar);
var
Rect: TRect;
ti: TToolInfo;
begin
if (Window <> 0) then
begin
GetClientRect(Window, Rect);
// Preenche a estrutura TToolInfo
FillChar(Ti, Sizeof(TToolInfo), 0);
ti.cbSize := SizeOf(TToolInfo);
ti.uFlags := TTF_SUBCLASS;
ti.hInst := hInstance;
ti.hwnd := Window;
ti.Rect := Rect;
ti.lpszText := Texto;
// Atribui a dica
SendMessage(ToolTip, TTM_ADDTOOL, 0, Integer(@ti));
end;
end;
//Usei uma dica genérica, mas vc pode criar uma dica personalizada para cada componente
procedure TForm1.FormCreate(Sender: TObject);
var
ToolTip: HWND;
i: integer;
begin
ToolTip := CriaToolTip(Form1.Handle, 1, PChar(Application.Title));
for i := 0 to ComponentCount - 1 do
begin
AdicionaToolTip(TEdit(Components[i]).Handle, ToolTip, PChar('Dica do componente ' + (Components[i]).Name));
end;
end;
end.
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009