C++ Builder 6 projesidir.
System Tray uygulamasını anlatan bir örnektir. System tray bilgisayar açıldığında çalışması gereken programlarda olmazsa olmaz durumlardan biridir.System tray bilgisayar saatin hemen yanında yer alan yerdir.
System tray uygulamasıyla Msn Messenger programının çalışma mantığına benzer örnekler geliştirebilirsiniz.
Programda gözden kaçacak ek bir ayrıntıyı belirtmekde yarar var. Başlangıçta ana formun görünmemesi için;
Project1.cpp içindeki
Application->CreateForm(__classid(TForm1), &Form1); satırından sonra
Form1->ShowMainForm=false;
satırı eklenmelidir. Bu sayede program açıldığında ana form görünmeyecektir.
Bu program Hatırlatıcı Paket Programının Bir Parçasıdır.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <shellapi.h>
NOTIFYICONDATA stray;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Hatrlatc1Click(TObject *Sender)
{
Form1->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::k1Click(TObject *Sender)
{
Application->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
stray.cbSize=sizeof(NOTIFYICONDATA);
stray.hWnd=Form1->Handle;
stray.uID=0;
strcpy(stray.szTip,"Hatırlatıcı");
stray.uCallbackMessage=0x200;
stray.uFlags=7;
stray.hIcon=Application->Icon->Handle;
Shell_NotifyIcon(0,&stray);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Form1->Hide();
Action=caNone;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
TPoint m;
GetCursorPos(&m);
switch(X)
{
case 0x203 : Form1->Show(); break;
case 0x204 : PopupMenu1->Popup(m.x,m.y);
}
}
//---------------------------------------------------------------------------