![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Мне нужно чтобы моя программа сворачивалась в трей с анимацией, но она просто исчезает. Я пробывал вот это , но не помогает... эта система не работает только у меня или у всех?
Последний раз редактировалось ChinYan, 05.04.2010 в 14:48. |
|
#2
|
||||
|
||||
|
а как вообще сделать чтобы программа пряталась в трей?
![]() |
|
#3
|
|||
|
|||
|
Берем компонент TCoolTrayIcon, ставим, бросам на форму, настраиваем свойства и радуемся всем доступным эффектам.
|
|
#4
|
|||
|
|||
|
А где ж его взять? Что-то у меня нет такого. В дополнении наверно в каком-нибудь?
|
|
#5
|
||||
|
||||
|
Да это сторонние компоны (скажу честно, не самые лучшие и удобные), но забавные.
|
|
#6
|
||||
|
||||
|
Код:
unit Unit1;
interface
uses
ShellAPI,
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
FNOTIFYICONDATA: NOTIFYICONDATA;
public
{ Public declarations }
procedure NOTIFYICONDATACallbackMessage(var AMessage: TMessage); message WM_USER+$1001;
procedure OnMinimize(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ZeroMemory(@FNOTIFYICONDATA, SizeOf(NOTIFYICONDATA));
FNOTIFYICONDATA.cbSize:=SizeOf(NOTIFYICONDATA);
FNOTIFYICONDATA.Wnd:=Handle;
FNOTIFYICONDATA.uFlags:=NIF_ICON or NIF_TIP or NIF_MESSAGE;
FNOTIFYICONDATA.uCallbackMessage:=WM_USER+$1001;
FNOTIFYICONDATA.hIcon:=Application.Icon.Handle;
StrPCopy(FNOTIFYICONDATA.szTip, Application.Title);
Shell_NotifyIcon(NIM_ADD, @FNOTIFYICONDATA);
Application.OnMinimize:=OnMinimize;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @FNOTIFYICONDATA);
end;
procedure TForm1.NOTIFYICONDATACallbackMessage(var AMessage: TMessage);
begin
if AMessage.LParam=WM_LBUTTONDOWN then
begin
ShowWindow(Application.Handle, SW_SHOW);
Application.Restore;
Application.BringToFront;
end;
end;
procedure TForm1.OnMinimize(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE);
end;
end.для анимации самой иконки в трее добавить таймер и : Код:
procedure TForm1.Timer1Timer(Sender: TObject); begin FNOTIFYICONDATA.cbSize:=SizeOf(NOTIFYICONDATA); FNOTIFYICONDATA.Wnd:=Handle; FNOTIFYICONDATA.uFlags:=NIF_ICON; FNOTIFYICONDATA.hIcon:=<тут меняем handle иконок>; Shell_NotifyIcon(NIM_MODIFY, @FNOTIFYICONDATA); end; Последний раз редактировалось NumLock, 07.06.2010 в 09:20. |
|
#7
|
|||
|
|||
|
deleted .
|
|
#8
|
||||
|
||||
|
Цитата:
|
|
#9
|
|||
|
|||
|
спасибо. Уже воспользовался кодом от NumLock.
Не подскажите ещё, как в delphi 7 запихать строку со временем '12:00:00' в переменную Tdatetime? мне нужно узнать что время сейчас > 12:00:00 помещаю в переменную tdatetime strtotime('12:00:00') и сравниваю с now. В 12:00:00 они почему-то не равны. Что я делаю не правильно? Сори, что не в тему, неохото по пустякам новые темы создавать. |