Buscar

Hint com balões - bem fácil

Código

// Para Entender Melhor a Dica Crie um Novo Form

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

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Forms
Adicionada dia: 05/02/05
Por: Marcio
Visualizada: 13454 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009