Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CoolTrayIcon, попуп меню нанажатие правой кнопки 
:(
    Опции темы
Drizhenko
Дата 7.12.2005, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 13.1.2005

Репутация: нет
Всего: нет



Сделал попуп меню на нажатие кнопки по значку в трее. Почему-то меню возникает при нажатии любой кнопки мыши, а как сделать, чтобы оно возникало при нажатии правой кнопки?
Забыл сказать, я использую CoolTrayIcon

PM MAIL   Вверх
Albinos_x
Дата 7.12.2005, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Код

procedure TForm1.MTIcon(var a: TMessage);
var P:TPoint;
begin
case a.LParam of
   WM_LBUTTONDBLCLK :  begin          // выполняется по двойному щелчку
                       Show;
                       end;
   WM_RBUTTONDOWN   :  begin          // выполняется при правом клике
                       SetForegroundWindow(Handle);
                       GetCursorPos(P);
                       PopupMenu1.Popup(P.X,P.Y);
                       PostMessage(Handle, WM_NULL, 0, 0);
                       end;
     end;
 inherited;
end;

есои тебе нужно только клик правой кнопкой:
Код

procedure TForm1.MTIcon(var a: TMessage);
var P:TPoint;
begin
case a.LParam of
   WM_RBUTTONDOWN   :  begin          // выполняется при правом клике
                       SetForegroundWindow(Handle);
                       GetCursorPos(P);
                       PopupMenu1.Popup(P.X,P.Y);
                       PostMessage(Handle, WM_NULL, 0, 0);
                       end;
     end;
 inherited;
end;



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Drizhenko
Дата 7.12.2005, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 13.1.2005

Репутация: нет
Всего: нет



А я нашел еще один способ
Код
CoolTrayIcon1.LeftPopup:=false;

PM MAIL   Вверх
Albinos_x
Дата 7.12.2005, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



упс... просмотрел, что компанентом пользуешься...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Drizhenko
Дата 7.12.2005, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 13.1.2005

Репутация: нет
Всего: нет



Ничего, информация мне пригодилась.
PM MAIL   Вверх
BlackPhoeniX
Дата 7.12.2005, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 2.12.2005
Где: Самарская обл

Репутация: нет
Всего: нет



У меня возникла проблема при создании значка в трее без использования компонента. В переменной типа TNotifyIconData в поле uCallbackMessage что нужно ставить, чтобы по клику на значке в трее выполнялась процедура обработки?
PM MAIL   Вверх
Albinos_x
Дата 7.12.2005, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Код
...
private
    { Private declarations }
    procedure MTIcon(var a: TMessage); message MyTrayIcon;

implementation

{$R *.dfm}

var NID: TNotifyIconData;

const MyTrayIcon = WM_USER+1;              // вот это <<<<<<<<<<<<<

// обработка клика мышью по иконке в системном трее
procedure TForm2.MTIcon(var a: TMessage);
var P:TPoint;
begin
case a.LParam of
   WM_LBUTTONDBLCLK :  begin
                       Show;
                       end;
   WM_RBUTTONDOWN   :  begin
                       SetForegroundWindow(Handle);
                       GetCursorPos(P);
                       PopupMenu1.Popup(P.X,P.Y);
                       PostMessage(Handle, WM_NULL, 0, 0);
                       end;
     end;
 inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
// невидимая форма
Application.ShowMainForm:=false;
// загружаем иконку в трей //
// параметры иконки
with NID do
  begin
  cbSize:= SizeOf(TNotifyIconData);
  Wnd:=Handle;
  uID:=1;
  uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
  uCallbackMessage:=MyTrayIcon;     //  здесь <<<<<<<<<<<<<<<<<<
  hIcon:=Application.Icon.Handle;
  szTip:='А вот и я!!!';
  end;
// добавляем иконку
Shell_NotifyIcon(NIM_ADD,@NID);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
// уничтожаем иконку
Shell_NotifyIcon(NIM_Delete,@NID);
end;


Это сообщение отредактировал(а) Albinos_x - 7.12.2005, 20:50


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0489 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.