System Tray Uygulaması

DrogbA

Forum Üyesi
Katılım
27 Ara 2020
Mesajlar
3,440
Tepkime puanı
0
Puanları
36
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:
//---------------------------------------------------------------------------
 
#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);
}
}
//---------------------------------------------------------------------------
 

Nutella

Bayan Üye
Özel Üye
Katılım
2 Ocak 2021
Mesajlar
3,559
Tepkime puanı
0
Puanları
36
Cinsiyet
  1. Bayan
Takım
Galatasaray
Paylaşım için teşekkürler.
 
metal işleme
Üst