Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];

Вниз

System Tray   Найти похожие ветки 

 
dkDimon   (2002-12-08 01:34) [0]

Мастера, подскажите, плиз, как правильно сворачивать приложение в СисТрей вообще и в частности чтобы приложение при запуске автоматически сворачивалось в трей. + правильное восстановление окна из трея.


 
S@M_vvv   (2002-12-08 01:43) [1]

Procedure ic(a:boolean);
var nim:tnotifyicondata;
begin
with nim do
begin
cbSize:=sizeof(nim);
wnd:=form1.Handle;
uid:=1;
uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
hicon:=Application.Icon.Handle;
uCallbackMessage:= wm_user+1;
szTip:="это всплывающая подсказка";
end;
if a then shell_notifyicon(nim_add,@nim) else
shell_notifyicon(nim_delete,@nim);
end;
где-то в программе.. ic(true); application.Minimize;
для восстановления : ic(false);application.Restore;


 
Юрий Зотов   (2002-12-08 01:51) [2]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Forms, ShellAPI, Menus;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
FIconData: TNotifyIconData;
protected
procedure WndProc(var Message: TMessage); override;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

const
UM_TRAY = WM_USER + 1;

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
with FIconData do
begin
cbSize := SizeOf(FIconData);
Wnd := Handle;
uID := 100;
uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallbackMessage := UM_TRAY;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title)
end;
Application.ShowMainForm := False;
Shell_NotifyIcon(NIM_ADD, @FIconData)
end;

procedure TForm1.WndProc(var Message: TMessage);
begin
case Message.Msg of
WM_SYSCOMMAND:
if TWMSysCommand(Message).CmdType and $FFF0 = SC_MINIMIZE then
begin
Shell_NotifyIcon(NIM_ADD, @FIconData);
Application.MainForm.Visible := False
end
else inherited;
UM_TRAY:
if Message.LParam = WM_LBUTTONDBLCLK then
begin
Application.MainForm.Visible := True;
ShowWindow(Application.Handle, SW_HIDE);
Shell_NotifyIcon(NIM_DELETE, @FIconData)
end;
else inherited
end
end;

end.


 
Berg   (2002-12-09 10:11) [3]

>>Юрий Зотов © (08.12.02 01:51)
Хороший пример, только с восстановлением не понял, окно сворачивается и его остается только вырубать по CTRL+ALT+DEL, а куда иконка девается?


 
Song   (2002-12-09 10:37) [4]

http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=display;num=1037272197


 
Юрий Зотов   (2002-12-09 12:19) [5]

> а куда иконка девается?

В трей, куда ж еще-то.
Двойной клик по иконке снова показывает форму. Сворачивается она снова в трей, а ее закрытие завершает программу.


 
Berg   (2002-12-09 12:25) [6]

>>Юрий Зотов © (09.12.02 12:19)

Дык, нет ее там, потому и переспрашиваю. Нет не в таскбаре, ни возле часов, нигде нет.


 
Юрий Зотов   (2002-12-09 12:55) [7]

Так быть не должно, этот код проверен уже десятки раз.

1. У Application вообще иконка имеется?
2. Если у Вас XP, раздвиньте трей (сняв сначала закрепление таскбара).


 
Юрий Зотов   (2002-12-09 13:07) [8]

Кажется, все ясно.
Обработчик OnCreate - назначили?


 
Berg   (2002-12-09 14:08) [9]

>>Юрий Зотов © (09.12.02 13:07)

Спасибо, разобрался!
Признаю, что с моей стороны это быол просто глупо - скопировать код и не переназначить обработчик.



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

Форум: "Основная";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
1-61551
Lizerginnn
2002-12-09 17:11
2002.12.19
Представление строки


1-61586
Explorer
2002-12-10 09:27
2002.12.19
---|Ветка была без названия|---


14-61758
Sergey_Suhoy
2002-11-27 12:56
2002.12.19
Как Вы относитесь к тяжелым по характеру людям.


14-61789
Grifon
2002-11-22 22:11
2002.12.19
---|Ветка была без названия|---


1-61701
TCrash
2002-12-09 00:29
2002.12.19
}{итрая функция





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский