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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Свернуть прогу в Tray, Извините, повторяюсь но в факе ошибка 
:(
    Опции темы
brick-rs
Дата 20.5.2004, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.5.2004
Где: г. Мыски, Кемеров ская обл.

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



как сей сабж реализовать, кстати в факе щелкал по ссылке выходит: Object not found!

Это сообщение отредактировал(а) brick-rs - 20.5.2004, 05:32
PM MAIL WWW ICQ   Вверх
jonik_Dk
Дата 20.5.2004, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть компоненты Rx.

Компонентик RxTrayIcon кидаешь минимум настроек и все работает.
PM MAIL   Вверх
brick-rs
Дата 20.5.2004, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.5.2004
Где: г. Мыски, Кемеров ская обл.

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



минумиум настроек сделал, но заблудился в ссылках, как отловить минимизацию окна?
Нешел следующее:

>>"Обработка сообщения WM_SYSCOMMAND (перехват минимизации окна)"
>>Procedure TMain.WMGetSysCommand(var Message : TMessage) ;
>>Begin
>>IF (Message..wParam = SC_MINIMIZE)
>>Then Main.Visible:=False
>>Else Inherited;
>>End;

где это и куда это?

PM MAIL WWW ICQ   Вверх
p0s0l
Дата 20.5.2004, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Код
interface
...

type
 TMain = class(TForm)
...
   procedure WMGetSysCommand(var Message : TMessage); message WM_SYSCOMMAND;
...

implementation

procedure TMain.WMGetSysCommand(var Message : TMessage);
begin
... далее по тексту как ты привел
end;



--------------------
С уважением, г-н Посол.
PM   Вверх
Cyber_Master
Дата 20.5.2004, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Это всё хорошо, но как вызывать контекстное меню по правой кнопке мыши на иконке в Трее ?
PM MAIL   Вверх
functionario honorifico
Дата 20.5.2004, 16:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











При вызове Sell_NotifyIcon ты
передаёшь ей идентификатор колбэк-сообщения.
Соответственно в его обработчике

if Msg.lParam = WM_RBUTTONDOWN then
begin
GetCursorPos(P);
PopupMenu.Popup(P.X, P.Y);
end;

  Вверх
p0s0l
Дата 20.5.2004, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



functionario honorifico, почему бы не зарегистрироваться ? ;)


--------------------
С уважением, г-н Посол.
PM   Вверх
brick-rs
Дата 21.5.2004, 03:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.5.2004
Где: г. Мыски, Кемеров ская обл.

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



Вроде бы получилось, но вот еще не совсем, с кнопки минимизации все Ок, а если нажимаешь на панели задач на программу, чтоб она свернулась, то она не сворачивается, я так предполагаю это что другое событие? как сие отловить и все таки "загнать" прогу в трей?
PM MAIL WWW ICQ   Вверх
functionario honorifico
Дата 21.5.2004, 16:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Воспользуйся Application.OnMinimize

(в этом случае сообщение WM_SYSCOMMAND направляется не форме,
а непосредственно Application. Естественно, что в обработчик сообщения формы
оно не попадает)


  Вверх
SkilFul
Дата 22.5.2004, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот текст, который я использовал, устранив ошибки ...

Код

uses ShellApi


В место где пишут процедуры
Код

  Procedure Ic(n:Integer;Icon:TIcon);


Добавляем в protected (после обычных процедур)
Код

protected
Procedure ControlWindow(Var Msg:TMessage)
; message WM_SYSCOMMAND;
Procedure IconMouse(var Msg : TMessage)
; message WM_USER+1;


Перехват сообщений о свертывании
Код

Procedure TForm1.ControlWindow(Var Msg:TMessage);
Begin
IF Msg.WParam=SC_MINIMIZE then
Begin
Ic(1,i1.Picture.Icon); //Добавляем значок в трей
ShowWindow(Handle,SW_HIDE);
ShowWindow(Application.Handle,SW_HIDE);
save.trayin:=true;
// Скрываем программу
End
else
inherited;
End;


Процедура работы со значками
Код

Procedure TForm1.Ic(n:Integer;Icon:TIcon);
Var Nim:TNotifyIconData;  fl:string;
begin
With Nim do
Begin
cbSize:=SizeOf(Nim);
Wnd:=Form1.Handle;
uID:=1;
uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
hicon:=Icon.Handle;
uCallbackMessage:=wm_user+1;
szTip:='IP Messenger v8.5';
End;
Case n OF
1: Shell_NotifyIcon(Nim_Add,@Nim); //добавление
2: Shell_NotifyIcon(Nim_Delete,@Nim); //удаление
3: Shell_NotifyIcon(Nim_Modify,@Nim); //изменение
End;
end;


Действия при нажатии на значок в трее
Код

procedure TForm1.IconMouse(var Msg:TMessage);
Var p:tpoint;
begin
GetCursorPos(p); //запоминаем координаты курсора мыши
Case Msg.LParam OF //проверяем какая кнопка была нажата
WM_LBUTTONUP,WM_LBUTTONDBLCLK: {действия, происходящие по щелчку и нажатию левой кнопки мыши}
Begin
Ic(2,i1.Picture.Icon); // удаляем значок из трея
ShowWindow(Handle,sw_SHOWNORMAL); // вот та самая ошибка (я её сам заметил) если не написать эту срточку, окно свернется только в ...
ShowWindow(Application.Handle,SW_SHOWNORMAL)
;
End;
WM_RBUTTONUP: {при нажатии правой  кнопкой мыши}
Begin
SetForegroundWindow(Handle)
;
PopupMenu5.Popup(p.X,p.Y)
; // выводим POPUP
PostMessage(Handle,WM_NULL,0,0);
//восстанавливаем окно программы
end;
End;
end;



Всё отлично работает
(Отредактированный ответ Song)
После введения этого текста при свертывании программа будет сворачиваться в ТРеЙ.

Это сообщение отредактировал(а) SkilFul - 22.5.2004, 19:15
PM MAIL   Вверх
x77
Дата 22.5.2004, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: -1
Всего: 22



1. " Вот текст, который я использовал, устранив ошибки ..."

2. "(Отредактированный ответ Song)"

ты за Song'ом "устранял ошибки" ? да ты крут, брат. хрен с ней, с репутацией, но мне дико любопытно, что именно ты устранил из корявок бедолаги Song'а?


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Pathfider
Дата 17.7.2004, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



SkilFul С этим кодом действительно все классно работает! Правда пришлось его малясь подправить для своего случая. Спасибо!

--------------------
Trust is a weakness
PM MAIL   Вверх
sergejzr
Дата 25.9.2004, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Цитата(SkilFul @ 22.5.2004, 18:13)
Ic(1,i1.Picture.Icon); //Добавляем значок в трей


что значит тут i1 ?

А, разобрался, Это TImage.
А вот этот save?

Код
save.trayin:=true;


Всё, спасиб разобрался smile.gif

значит добавлю:
i1 это TImage с иконкой в трее. Там формат должен быть *.ico иначе не идёт smile.gif для теста можно взять прицепленный.

Необходимо добавить pop up menu "PopupMenu5" в вашу форму.

Код
save.trayin:=true;
Это походу можно закомментировать. Просто переменная, которая знает втрее ли программа smile.gif

Вроде теперь должно работать smile.gif



Это сообщение отредактировал(а) sergej.z - 25.9.2004, 01:32

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  bild.zip


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
The MASTER
  Дата 28.9.2004, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Old master)
**


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

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



Слушай легче короче скачать хороший Набор компонентов CHPACK если бы у меня был бы сайт я бы тебе ссылочку на скачку дал бы а так поищи на Яndex там так и пиши Пакет компонентов CHPACK и там и в трей сворачивать и у панелий появились события OnMouseOver и т.д...

CHPACK For DELPHI Рекомендованно THE MASTER'ом!


Это сообщение отредактировал(а) The MASTER - 28.9.2004, 19:19
PM MAIL WWW ICQ   Вверх
Medved
Дата 29.9.2004, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

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



Специально для The MASTER: Закон Дырявых Абстракций



--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

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

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

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

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

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


 




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


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

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