Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: 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 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
2-1148477144
Hitkliff
2006-05-24 17:25
2006.06.11
Форма фулскрин


2-1148473159
mfender
2006-05-24 16:19
2006.06.11
EAccessViolation и IHTMLLinkElement


2-1148620878
kaginava
2006-05-26 09:21
2006.06.11
Запуск программы из сервиса


2-1148316017
Ray
2006-05-22 20:40
2006.06.11
Мучения с видео :)


1-1146027596
bsframer
2006-04-26 08:59
2006.06.11
Обработка текстовых файлов больших размеров (2 - 3 ГГб)