hadiaj168
یک شنبه 05 آبان 1387, 03:41 صبح
با سلام
چطور میشه آیکون برنامه رو به  notification area ویندوز اضافه کرد؟
vcldeveloper
یک شنبه 05 آبان 1387, 09:18 صبح
در دلفی 2007 به بالا: کامپوننت TrayIcon خودِ دلفی.
در نسخه های قدیمی تر: انواع و اقسام کامپوننت ها موجود هست، معمولا CoolTray که مجانی هم هست، محبوبتر هست.
اگر خودتون میخواید بسازید: تابع Shell_NotifyIcon ویندوز.
s.mostafa.rahmani
یک شنبه 05 آبان 1387, 11:23 صبح
اول اين ثابت رو در قسمت Interface يونيت اضافه كنيد:
const
  WM_ICONTRAY = WM_USER + 1;
در قسمت private يا public فرم 
    TrayIconData: TNotifyIconData;
    procedure InitialTrayIcon;
    procedure TrayMessage(var Msg: TMessage); message WM_ICONTRAY;
رو اضافه كنيد.
اين هم روالهاي مورد نياز:
procedure TfrmMain.InitialTrayIcon;
begin
  PopUpMenu1.OwnerDraw:=True;
  with TrayIconData do
  begin
    cbSize := SizeOf(TrayIconData);
    Wnd := Handle;
    uID := 0;
    uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
    uCallbackMessage := WM_ICONTRAY;
    hIcon := Application.Icon.Handle;
    StrPCopy(szTip, Application.Title);
  end;
  Shell_NotifyIcon(NIM_ADD, @TrayIconData);
end;
procedure TfrmMain.TrayMessage(var Msg: TMessage);
var
  p : TPoint;
begin
{  case Msg.lParam of
    WM_LBUTTONDOWN:
    begin
      ShowMessage('This icon responds to RIGHT BUTTON click!');
    end;
    WM_RBUTTONDOWN:
    begin
       SetForegroundWindow(Handle);
       GetCursorPos(p);
       PopUpMenu1.Popup(p.x, p.y);
       PostMessage(Handle, WM_NULL, 0, 0);
    end;
  end;}
  if (Msg.LParam = WM_LBUTTONDOWN) or (Msg.LParam = WM_RBUTTONDOWN) then
  begin
    SetForegroundWindow(Handle);
    GetCursorPos(p);
    PopUpMenu1.Popup(p.x, p.y);
    PostMessage(Handle, WM_NULL, 0, 0);
  end;
end;
با فراخواني   InitialTrayIcon در هر قسمتي از فرم مثلاً در OnShow فرم يا در OnClick يك Button ميتونيد آيكن برنامه رو در System Tray اضافه كنيد.
و با دستور
  Shell_NotifyIcon(NIM_DELETE, @TrayIconData);
ميتونيد آيكن رو از System Tray حذف كنيد.
ميتونيد Popup Menu هم داشته باشيد، اگه دقت كنيد در پروسيجرها ازش (PopupMenu1) استفاده شده.
.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.