Вниз
Скачать: CL | DM;

Вопрос по стандартному компоненту TrayIcon   Найти похожие ветки 

← →
Tempora   (2006-05-25 09:01) [0]

Есть компонент TrayIcon входящий в последние версии Delphi.
Как сделать так, чтобы:
1. при запуске программы иконки в трее не было
2. при нажатии на главной форме кнопки Minimize иконка в трее появлялась и туда сворачивалась программа
3. при нажатии на иконку в трее иконка пропадала и показывалась главная форма программы


← →
TUser ©   (2006-05-25 09:43) [1]

Хелп к компоненнты в последние версии Delphi входит? Там есть свойство Active или ShowIcon или что-то вроде того. И список событий посмотри.


← →
Handle   (2006-05-25 09:55) [2]

У меня нет D2005, поэтому могу предложить следующий вариант.
Может пригодится.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Shellapi;
const
WM_NOTIFYTRAYICON = WM_USER + 1;
type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   procedure WMTRAYICONNOTIFY(var Msg: TMessage); message WM_NOTIFYTRAYICON;
   procedure OnMinimizeProc(Sender: TObject);
 public
   { Public declarations }
 end;

var
 Form1:        TForm1;
 CursorPos:    TPoint;
implementation

{$R *.dfm}

procedure TForm1.WMTRAYICONNOTIFY(var Msg: TMessage);
var
Tray:         TNotifyIconData;
begin
case Msg.LParam of
WM_LBUTTONDOWN:
begin
GetCursorPos(CursorPos);
SetForegroundWindow(Application.MainForm.Handle);
Form1.Show;
Application.Restore;
with Tray do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Form1.Handle;
uID := 0;
end;
Shell_NotifyIcon(NIM_DELETE, Addr(Tray));
end;
end;
end;

procedure TForm1.OnMinimizeProc(Sender: TObject);
var
Tray: TNotifyIconData;
begin
with Tray do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Form1.Handle;
uID := 0;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage := WM_NOTIFYTRAYICON;
hIcon :=  Application.Icon.Handle;
szTip := ("Имя программы");
end;
Shell_NotifyIcon(NIM_ADD, Addr(Tray));
Form1.Hide;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize:= OnMinimizeProc;
end;

end.


← →
Tempora   (2006-05-25 09:56) [3]

TUser
Смотрел. Многое из списка я конечно решил, но самого главного - нет.
В общем скачал CoolTrayIcon, но такое ощущение что он 32-битные иконки не понимает


← →
Handle   (2006-05-25 10:37) [4]

http://www.raize.com/DevTools/RzComps/DemoTrial.asp

Здесь есть RzTrayIcon, отличный компонент, правда серийники придётся искать.


← →
Tempora   (2006-05-26 12:49) [5]

Handle
Спасибо!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
1-1146652023
Бормодед
2006-05-03 14:27
2006.06.11
Правильный превью


2-1148567863
GreyT
2006-05-25 18:37
2006.06.11
Координаты курсора


2-1148705317
Urvin
2006-05-27 08:48
2006.06.11
Проверка наличия файла


15-1147670358
Ega23
2006-05-15 09:19
2006.06.11
С Днём рождения!


15-1147289111
_silver
2006-05-10 23:25
2006.06.11
Belgorod Mastak Party




   Наверх