BalloonHint Kullanımı

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
RamazanG
Üye
Mesajlar: 73
Kayıt: 16 Tem 2010 03:38

BalloonHint Kullanımı

Mesaj gönderen RamazanG »

Kod: Tümünü seç

procedure TForm1.Button1MouseEnter(Sender: TObject);
var
  Pt: TPoint; {Balloon tip için bir İşarateçi}
begin
    BalloonHint1.Title := 'Deneme';  {Başlık}
    BalloonHint1.Description := 'Bu Tuşa Bamaaaaaa';  {içerik Metin }
    BalloonHint1.Images:=ImageList1;
    BalloonHint1.ImageIndex:=0;  {0 numaralı resimi göster}
    BalloonHint1.HideAfter:=1000;  {Gösterilme süresi}
    Pt.X := Button1.Width Div 2;   {Genişliği}
    Pt.Y := 0;   {Yükseklik, Yazı boyutu kadar}
    BalloonHint1.ShowHint(Button1.ClientToScreen(Pt));  {Balloonhint'i Button1 in tam ortasında göster}

end;
Not(aslangeri):Lütfen kodları code tagı içinde yazalım.
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: BalloonHint Kullanımı

Mesaj gönderen G.Arkas »

Kullanılan bileşen harici bir bileşen sanırım? Delphinin kendi IDE sinde böyle bir komponent yoktur. :roll:
Resim
RamazanG
Üye
Mesajlar: 73
Kayıt: 16 Tem 2010 03:38

Re: BalloonHint Kullanımı

Mesaj gönderen RamazanG »

BalloonHint Delphi 2010 standart komponentidir. Ama aynı örneği kodla da delphinin önceki sürümlerinde de yapabilirsin, Normal hinte göre şık duruyor.
Eğer delphi nin diğer sürümlerini kullanıyorsanız aşşağıdaki kodu kullanabilirsiniz.

Sistem ikonlarını Kullanarak BalloonHint Kullanımı:

Kod: Tümünü seç

Uses CommCtrl;  // eklemeyi unutma

unit Unit1;

  (*
    Sistem İkonlarını Kullanarak Balloon Hint Kullanımı
  *)

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CommCtrl;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1MouseEnter(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure BalonHintGoster(Kontrol: TWinControl; Resim: integer;
    Baslik: pchar; Aciklama: PWideChar; BackCL, TextCL: TColor);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1MouseEnter(Sender: TObject);
begin
   {Balon Hint'i göster}
   BalonHintGoster(Button1, 1, 'Baslik',
  'Balloon Hint, http://WWW.DelphiTurkiye.com; Güncelleyen RamazanG', clBlue, clNavy);
end;

procedure TForm1.BalonHintGoster(Kontrol: TWinControl; Resim: integer;
  Baslik: pchar; Aciklama: 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    := Kontrol.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 := Aciklama;
    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, Resim mod 4, Integer(Baslik));
  end;

end;


2.Yol


    unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,CommCtrl;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Memo1MouseEnter(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure CreateToolTips(hWnd: Cardinal);

procedure AddToolTip(hwnd: DWORD; lpti: PToolInfo; IconType: Integer;
  Text, Title: PChar);
  end;
 const
  TTS_BALLOON    = $40;
  TTM_SETTITLE = (WM_USER + 32);
var
  Form1: TForm1;
  hTooltip: Cardinal;
  ti: TToolInfo;
  buffer : array[0..255] of char;
implementation

{$R *.dfm}

procedure TForm1.AddToolTip(hwnd: DWORD; lpti: PToolInfo; IconType: Integer;
  Text, Title: PChar);
var
  Item: THandle;
begin
  Item := hWnd;
  if Item <> 0 then
  begin
    lpti.hwnd := Item;
    lpti.Rect := GetClientRect;
    lpti.lpszText := Text;
    SendMessage(hToolTip, TTM_ADDTOOL, 0, Integer(lpti));
    FillChar(buffer, SizeOf(buffer), #0);
    lstrcpy(buffer, Title);
    if (IconType > 3) or (IconType < 0) then IconType := 0;
    SendMessage(hToolTip, TTM_SETTITLE, IconType, Integer(@buffer));
  end;

end;

procedure TForm1.CreateToolTips(hWnd: Cardinal);
begin
  hToolTip := CreateWindowEx(0, 'Tooltips_Class32', nil, TTS_ALWAYSTIP or TTS_BALLOON,
    Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),
    Integer(CW_USEDEFAULT), hWnd, 0, hInstance, nil);
  if hToolTip <> 0 then
  begin
    SetWindowPos(hToolTip, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or
      SWP_NOSIZE or SWP_NOACTIVATE);
    ti.cbSize := SizeOf(TToolInfo);
    ti.uFlags := TTF_SUBCLASS;
    ti.hInst  := hInstance;
  end;

end;

procedure TForm1.Memo1MouseEnter(Sender: TObject);
begin
       CreateToolTips(Form1.Handle);
  AddToolTip(Memo1.Handle, @ti, 1, 'Açıklama', 'Başlık');
end;

end.

En son RamazanG tarafından 04 Ağu 2010 07:11 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: BalloonHint Kullanımı

Mesaj gönderen aslangeri »

s.a.
@RamazanG;
Lütfen kodlarımızı code tagını kullanarak yazalım.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
RamazanG
Üye
Mesajlar: 73
Kayıt: 16 Tem 2010 03:38

Re: BalloonHint Kullanımı

Mesaj gönderen RamazanG »

Tamam ;)
Cevapla