TTrayIcon (C++)

From RAD Studio Code Examples
Jump to: navigation, search

Description

This example uses a tray icon and an application event component on a form. When the application runs, it loads the tray icon, the icons displayed when it is animated, and it also sets up a hint balloon. When you minimize the window, the form is hidden, a hint balloon appears, and the tray icon is displayed and animated. Double-clicking the system tray icon restores the window.

Code

__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  // Load the tray icons.
  TrayIcon1->Icons = new TImageList(this);
  TIcon *MyIcon = new TIcon;
  MyIcon->LoadFromFile("..//icons//earth1.ico");
  TrayIcon1->Icon->Assign(MyIcon);
  TrayIcon1->Icons->AddIcon(MyIcon);

  MyIcon->LoadFromFile("..//icons//earth2.ico");
  TrayIcon1->Icons->AddIcon(MyIcon);
  MyIcon->LoadFromFile("..//icons//earth3.ico");
  TrayIcon1->Icons->AddIcon(MyIcon);
  MyIcon->LoadFromFile("..//icons//earth4.ico");
  TrayIcon1->Icons->AddIcon(MyIcon);

  // Set up a hint message and the animation interval.
  TrayIcon1->Hint = "Hello World!";
  TrayIcon1->AnimateInterval = 200;

  // Set up a hint balloon.
  TrayIcon1->BalloonTitle = "Restoring the window.";
  TrayIcon1->BalloonHint =
    "Double click the system tray icon to restore the window.";
  TrayIcon1->BalloonFlags = bfInfo;
}

void __fastcall TForm1::ApplicationEvents1Minimize(TObject *Sender)
{
  // Hide the window and set its state variable to wsMinimized.
  Hide();
  WindowState = wsMinimized;

  // Show the animated tray icon and also a hint balloon.
  TrayIcon1->Visible = true;
  TrayIcon1->Animate = true;
  TrayIcon1->ShowBalloonHint();
}

void __fastcall TForm1::TrayIcon1DblClick(TObject *Sender)
{
  // Hide the tray icon and show the window,
  // setting its state property to wsNormal.
  TrayIcon1->Visible = false;
  Show();
  WindowState = wsNormal;
  Application->BringToFront();
}

Uses