Merhaba dostlar...
Şu sormak istiyorum.. Şimdi baloon efekti ile hint vermek istiyorum program tray e yerleşmek için minimize edildiğinde ama çıkacak balonun yerini nasıl ayarlayacağım ... kullandığım komponentin x ve y değerleri ile yerinin belirtilmesi gerekiyor... Problemi basite indirgersem şöyle , tray e yerleşen programımın yerini nasıl alabilirim? Fikri olan varsa sevinirim...
Teşekkürler...
tray icon ...
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Hint'in çıkacağı yeri mouse'nin koordinatlarına göre ayarlayabilirsin.
X ve Y'yi mousenin X ve Y'sine eşitle...
X ve Y'yi mousenin X ve Y'sine eşitle...
Oldeye Software
http://www.oldeye.com
http://www.oldeye.com
feinpus sanırım yapmak istediğimi anlamadın. Ben programı minimize ettikten sonra mouse ile bi işim kalmıyo zaten. Yapmak istediğim windows ve msn messenger ilk kez kapandığında hemen tray e yerleşiyor ve ardından messenger ın yerleştiği yerin hemen üstünde program hala çalışıyor şeklinde bir balon çıkıyor. Benim de yapmak istediğim o. Yani mouse ile bir işim yok...
Kod: Tümünü seç
unit systray2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
const
NIF_INFO = $10;
NIF_MESSAGE = 1;
NIF_ICON = 2;
NOTIFYICON_VERSION = 3;
NIF_TIP = 4;
NIM_SETVERSION = $00000004;
NIM_SETFOCUS = $00000003;
NIIF_INFO = $00000001;
NIIF_WARNING = $00000002;
NIIF_ERROR = $00000003;
NIN_BALLOONSHOW = WM_USER + 2;
NIN_BALLOONHIDE = WM_USER + 3;
NIN_BALLOONTIMEOUT = WM_USER + 4;
NIN_BALLOONUSERCLICK = WM_USER + 5;
NIN_SELECT = WM_USER + 0;
NINF_KEY = $1;
NIN_KEYSELECT = NIN_SELECT or NINF_KEY;
TRAY_CALLBACK = WM_USER + $7258;
type
PNewNotifyIconData = ^TNewNotifyIconData;
TDUMMYUNIONNAME = record
case Integer of
0: (uTimeout: UINT);
1: (uVersion: UINT);
end;
TNewNotifyIconData = record
cbSize: DWORD;
Wnd: HWND;
uID: UINT;
uFlags: UINT;
uCallbackMessage: UINT;
hIcon: HICON;
szTip: array[0..127] of Char;
dwState: DWORD;
dwStateMask: DWORD;
szInfo: array[0..255] of Char;
DUMMYUNIONNAME: TDUMMYUNIONNAME;
szInfoTitle: array[0..63] of Char;
dwInfoFlags: DWORD;
end;
type
TFrmSysTray2 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
IconData: TNewNotifyIconData;
procedure SysTrayIconMsgHandler(var Msg: TMessage); message TRAY_CALLBACK;
procedure AddSysTrayIcon;
procedure ShowBalloonTips;
procedure DeleteSysTrayIcon;
public
end;
var
FrmSysTray2: TFrmSysTray2;
implementation
{$R *.DFM}
uses
ShellAPI;
procedure TFrmSysTray2.SysTrayIconMsgHandler(var Msg: TMessage);
begin
case Msg.lParam of
WM_MOUSEMOVE: ;
WM_LBUTTONDOWN: ;
WM_LBUTTONUP: ;
WM_LBUTTONDBLCLK: ;
WM_RBUTTONDOWN: ;
WM_RBUTTONUP: ;
WM_RBUTTONDBLCLK: ;
NIN_BALLOONSHOW:
ShowMessage('NIN_BALLOONSHOW');
NIN_BALLOONHIDE:
ShowMessage('NIN_BALLOONHIDE');
NIN_BALLOONTIMEOUT:
ShowMessage('NIN_BALLOONTIMEOUT');
NIN_BALLOONUSERCLICK:
ShowMessage('NIN_BALLOONUSERCLICK');
end;
end;
procedure TFrmSysTray2.AddSysTrayIcon;
begin
IconData.cbSize := SizeOf(IconData);
IconData.Wnd := AllocateHWnd(SysTrayIconMsgHandler);
IconData.uID := 0;
IconData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
IconData.uCallbackMessage := TRAY_CALLBACK;
IconData.hIcon := Application.Icon.Handle;
IconData.szTip := 'Lütfen Bana Mail Gönderin';
if not Shell_NotifyIcon(NIM_ADD, @IconData) then
ShowMessage('Ekleme Basarısız');
end;
procedure TFrmSysTray2.ShowBalloonTips;
var
TipInfo, TipTitle: string;
begin
IconData.cbSize := SizeOf(IconData);
IconData.uFlags := NIF_INFO;
TipInfo := 'Lütfen Bana Mail Gönderin';
strPLCopy(IconData.szInfo, TipInfo, SizeOf(IconData.szInfo) - 1);
IconData.DUMMYUNIONNAME.uTimeout := 3000;
TipTitle := 'blabla@blabla.com';
strPLCopy(IconData.szInfoTitle, TipTitle, SizeOf(IconData.szInfoTitle) - 1);
IconData.dwInfoFlags := NIIF_INFO;
Shell_NotifyIcon(NIM_MODIFY, @IconData);
IconData.DUMMYUNIONNAME.uVersion := NOTIFYICON_VERSION;
if not Shell_NotifyIcon(NIM_SETVERSION, @IconData) then
ShowMessage('Setversion Basarısız');
end;
procedure TFrmSysTray2.DeleteSysTrayIcon;
begin
DeallocateHWnd(IconData.Wnd);
if not Shell_NotifyIcon(NIM_DELETE, @IconData) then
ShowMessage('Silme Basarısız');
end;
procedure TFrmSysTray2.FormCreate(Sender: TObject);
begin
AddSysTrayIcon;
ShowBalloonTips;
end;
procedure TFrmSysTray2.FormDestroy(Sender: TObject);
begin
DeleteSysTrayIcon;
end;
end.
ÜŞENME,ERTELEME,VAZGEÇME