Форум: "WinAPI";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c