Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.06;
Скачать: CL | DM;

Вниз

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

 
Igor_thief ©   (2001-12-20 12:04) [0]

Народ, я видел у Вас есть неплохой исходник "по закидыванию проги в трей". Исходник то клёвый, но он кроме как бросания в трей ничего не делает. Как сделать реакцию на нажатие мыши. Чтобы появилась менюшка, итд. Буду рад если получу ответ на мыло.


 
Bizon ©   (2002-01-10 14:30) [1]

Могу скинуть библиотечку ProLib, где есть компонент System Tray, который имеет и меню и реагирует на клик, и на даблклик и др.


 
Юрий Зотов ©   (2002-01-10 14:33) [2]

http://www.delphikingdom.com/helloworld/samples_win.htm

Там скачайте пример N 1 (3.6K). В нем все и найдете.


 
_SnAke_ ©   (2002-01-10 15:08) [3]

Посмотри на пятой странице кладовки компонент KreyMedia


 
Igor_thief ©   (2002-01-10 17:10) [4]

А как перехватить тот момент, когда форма минимизируется, чтобы забросить форму в трей?


 
Pat ©   (2002-01-10 18:16) [5]

>Igor_thief
Может тебе это надо:
N1 - Выход
N3 - Развернуть
N4 - Свернуть

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
shellApi, StdCtrls, AppEvnts, Menus;

type
TForm1 = class(TForm)
ApplicationEvents1: TApplicationEvents;
PopupM: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
procedure IconMouse(var Msg : TMessage);message WM_USER + 1;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ApplicationEvents1Minimize(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.IconMouse(var Msg : TMessage);
var p:tpoint;
begin
getcursorpos(p);
case Msg.LParam of
WM_LBUTTONDBLCLK :
begin
ShowWindow(Application.Handle,SW_SHOW);
Application.Restore;
end;
WM_rbuttonup:
begin
SetForegroundWindow(Handle);
PopupM.Popup(P.X,P.Y);
PostMessage(Handle,WM_NULL,0,0)
end;
end;
end;

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;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=canone;
application.Minimize;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ic(true);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
ic(false);
end;

procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
showwindow(application.handle,0);
end;

procedure TForm1.N1Click(Sender: TObject);
begin
application.Terminate;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
ShowWindow(Application.Handle,SW_SHOW);
Application.Restore;

end;

procedure TForm1.N4Click(Sender: TObject);
begin
application.Minimize;
end;

end.



 
Igor_thief ©   (2002-01-10 23:44) [6]

Огромнейшее спасибо Pat!!!!!!!!!!!!!!!!!!!!!! Я попробую твой вариант.


 
Fellomena   (2002-01-11 11:35) [7]

Народ - что вы все на компанентах помешались ?
Такие элементарные вещи как иконка в трэе, которая реагирует на клик и выдаёт хинт и PopUp меню
надо не лениться и делать на API !
Такими темпами уровень абстракции ООП вскоре станет черезчур высоким и тогда не станет программеров 8)
Если кому надо - вышлю пример иконки в трее с меню и хинтом - всё делала на чистом API (в SDK всё это есть)


 
Igor_thief ©   (2002-01-11 12:17) [8]

Буду очень рад ознакомиться с Вашим примером Fellomena.


 
Русский   (2002-01-11 12:39) [9]

To Fellomena>
В принципе лучше писать ето на чистом WinAPI, но если код очень большой, то потом фиг разберёшся, где что!


 
Bizon ©   (2002-01-11 12:47) [10]

>Fellomena
Конечно, если время позволяет, можно написать самому (если умеешь, если не умеешь, то хотя бы ради обучения), но ведь иногда надо быстро. Для этого есть готовые компоненты.


 
Igor_thief ©   (2002-01-11 12:55) [11]

>To all of people
Готовые компоненты лучше просто разирать и по ним учиться. Можно также написать свой компонент, для особой практики(чего я делать не умею).


 
Igor_thief ©   (2002-01-11 12:57) [12]

>To all of people
Готовые компоненты лучше просто разирать и по ним учиться. Можно также написать свой компонент, для особой практики(чего я делать не умею). Даже если сильно припекло, то всё равно будет полезнее разобраться, написать ручками и запомнить(естественно, что если сам слабо, то спроси у людей и выучи результат).


 
Red Alert   (2002-01-12 04:48) [13]

Блин... Я пример на API уже 5 раз кидал в форум...


 
Romul ©   (2002-01-13 09:53) [14]

Кстати я примером именно от Red Alert воспользовался, немножко переделал и все прекрасно работает.


 
Igor_thief ©   (2002-01-13 12:56) [15]

Нут так киньте мне этот супер пример на мыло please!!! Буду ну очень благодарен. Да, только не забывайте что мне нужен пример в котором прога помещается в трей именно после того как пользователь нажмёт кнопочку минимизации. Хотя у меня возникла и деЯ как это раскрутить немножко в другом варианте. Короче говоря - жду, а там уж посмотрим.


 
Fellomena   (2002-01-14 11:49) [16]

Если кому надо - в кладовке свой пример выложила (мыло глючит у меня).


 
Igor_thief ©   (2002-01-14 19:46) [17]

Щас проверим кладовочку.


 
Igor_thief ©   (2002-01-15 11:57) [18]

Короче говоря я наконецто во всём разобрался. Но возникла только одна проблемка. Apllication.Restore. Вот это внатуре проблемка. Ведь без этой вот проблемки нет способа вывести окно поверх осальных окон и сделать его активным. Надобно как-то выкрутиться.


 
HazMat ©   (2002-03-04 09:25) [19]

Попробуй
Application.BringToFront;



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

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

Наверх




Память: 0.51 MB
Время: 0.011 c
1-17619
Turalyon
2002-04-22 14:10
2002.05.06
Сервесы


1-17535
Юляша
2002-04-23 22:53
2002.05.06
удаление формы


3-17506
aw
2002-04-12 16:39
2002.05.06
Как в DBGrid добавить вычисляемую колонку?


4-17743
BorisMor
2002-03-02 02:11
2002.05.06
хэндл консоли


1-17615
Сергей Чурсин
2002-04-20 19:31
2002.05.06
В OnMouseMove не срабатывает Form.Cursor:=... ?