Вверх ↑
Этот топик читают: Гость
Ответов: 534
Рейтинг: 5
#1: 2010-06-28 05:01:40 ЛС | профиль | цитата
Нужно сделать аналог системного трея, чтобы все эти иконки были у меня в программе и, самое главное, работали. Просто делал аналог Астона, придумал как реализовать почти всё, кроме трея.
Буду ОЧЕНЬ благодарен за помощь.
Пусть даже схема будет грузной и тормозной, только б как-нить организовать. Очень надо.
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#2: 2010-06-28 08:25:20 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2025-01-17 15:50:27
карма: 0

0
Ответов: 1891
Рейтинг: 110
#3: 2010-06-28 10:08:00 ЛС | профиль | цитата
Slim9009, писал(а):
Нужно сделать аналог системного трея, чтобы все эти иконки были у меня в программе и, самое главное, работали. Просто делал аналог Астона, придумал как реализовать почти всё, кроме трея.
Буду ОЧЕНЬ благодарен за помощь.
Пусть даже схема будет грузной и тормозной, только б как-нить организовать. Очень надо.


А нарисовать не судьба?
карма: 0
%time%
0
Ответов: 534
Рейтинг: 5
#4: 2010-06-28 15:38:09 ЛС | профиль | цитата
Alexbootch, вот я и спрашиваю, как?
------------ Дoбавленo в 15.25:
user-20.81.118.217.in-add, ну, наверное, да. Я в Дельфи нуб, но чичас попробую чё-нить намутить.
------------ Дoбавленo в 15.38:
user-20.81.118.217.in-add, написано:
создать свое окно с классом "Shell_TrayWnd" - А я создал окно с именем Shell_TrayWnd - или это не то?
В это окно функция Shell_NotifyIcon будет посылать сообщения WM_COPYDATA - А как эти сообщения принять?
Всё остальное долго, но, кажется, реализуемо.
карма: 0

0
Ответов: 1891
Рейтинг: 110
#5: 2010-06-28 23:41:03 ЛС | профиль | цитата
Slim9009, писал(а):
создать свое окно с классом "Shell_TrayWnd" - А я создал окно с именем Shell_TrayWnd - или это не то?


Slim9009, нет это не то. Тут надо писать IC (lnlineCode), т.к. необходимо обращаться к системной библиотеке shell32
карма: 0
%time%
0
Ответов: 534
Рейтинг: 5
#6: 2010-06-28 23:51:13 ЛС | профиль | цитата
Alexbootch писал(а):
lnlineCode
Ох, не нравится мне это. Может, ты подскажешь, как это сделать? Или дашь интернет-ссылку на соответствующий материал?
------------ Дoбавленo в 23.51:
Alexbootch писал(а):
А нарисовать не судьба?
Что ты имел ввиду? Как это, "нарисовать"?
карма: 0

0
Ответов: 1891
Рейтинг: 110
#7: 2010-06-29 00:01:13 ЛС | профиль | цитата
Slim9009, писал(а):
Может, ты подскажешь, как это сделать? Или дашь интернет-ссылку на соответствующий материал?


С IC подсказать ничего не могу, т.к. pascal не знаю. Посмотри на сером форуме, там вроде была частичная реализация того, что ты хочешь через библиотеки DynamicWrapperX и DynamicWrapper. Указанные библиотеки работают через СОМ, их можно попробовать через компонент VBJScript

Slim9009, писал(а):
Что ты имел ввиду? Как это, "нарисовать"?


В прямом смысле нарисовать - сделать псевдо системный трей
карма: 0
%time%
0
Ответов: 534
Рейтинг: 5
#8: 2010-06-29 00:06:29 ЛС | профиль | цитата
Блин, вот нашёл что-то (в аттаче).
Из cfg файла я понял что это для Delphi7, но всё же. Сейчас попробую чё-нить из этого сделать.
------------ Дoбавленo в 00.06:
Alexbootch писал(а):
В прямом смысле нарисовать - сделать псевдо системный трей
Надо ж инфу о значках взять, и взять ручками, хиасмом никак, как я понял.
Alexbootch писал(а):
сером форуме
Что такое?
карма: 0

0
файлы: 1fwsystrayinfo.zip [7.6KB] [60]
Ответов: 1891
Рейтинг: 110
#9: 2010-06-29 00:24:26 ЛС | профиль | цитата
Slim9009, писал(а):
Что такое?


В гугле набери и узнаешь. А так это форум по различным скриптам.
------------ Дoбавленo в 00.24:
Slim9009, писал(а):
Надо ж инфу о значках взять, и взять ручками, хиасмом никак, как я понял.


Slim9009, тебе же дал инфу user-20.81.118.217.in-add, разбирайся.
карма: 0
%time%
0
Ответов: 534
Рейтинг: 5
#10: 2010-06-29 01:54:15 ЛС | профиль | цитата
Alexbootch, да чё разбирайся... Я не пойму, как
создать свое окно с классом "Shell_TrayWnd"

карма: 0

0
Разработчик
Ответов: 26333
Рейтинг: 2148
#11: 2010-06-29 02:14:45 ЛС | профиль | цитата
Slim9009 писал(а):
Я не пойму, как

На, почитай, может поможет http://www.delphisources.ru/pages/faq/base/shell_tray.html

карма: 22

0
Ответов: 534
Рейтинг: 5
#12: 2010-06-29 03:03:45 ЛС | профиль | цитата
nesco, не ну там всё понятно. А как
Slim9009 писал(а):
создать свое окно с классом "Shell_TrayWnd"
в ХИАСМ???
------------ Дoбавленo в 03.03:
Блин, было бы прямое редактирование исходника, а не его кастрированная копия IC.
карма: 0

0
Разработчик
Ответов: 26333
Рейтинг: 2148
#13: 2010-06-29 09:11:09 ЛС | профиль | цитата
Slim9009 писал(а):
А как

Копать в сторону API функции CreateWindowEx
карма: 22

0
Ответов: 534
Рейтинг: 5
#14: 2010-06-29 15:44:01 ЛС | профиль | цитата
nesco, спасибо.
------------ Дoбавленo в 15.44:
Вот нашёл:
function CreateWindow(ExStyle: Longint; ClassName, WindowName: PChar; Style: Longint; X, Y, Width, Height: Integer; WndParent: HWnd; Menu: HMenu; Instance: THandle; Param: Pointer): HWnd;
Паpаметpы:
ExStyle: Один из следующих pасшиpенных стилей окна: ws_ex_DlgModalFrame, или ws_ex_NoParentNotify. См. pаздел "Расшиpенные стили окон, ws_ex_" в главе 1.
ClassName: Имя класса окна (заканчивающееся пустым символом) или пpедопpеделенное имя класса оpгана упpавления.
WindowName: Заголовок или имя окна (заканчивающееся пустым символом).
Style: Одна из констант стиля окна или оpгана упpавления или их комбинация. К этим константам относятся константы ds_, ws_, bs_, cbs_, es_, lbs_, sbs_, ss_. См. главу 1.
X, Y: Начальное положение окна или cw_UseDefault. См. pаздел "Стандаpтный код создания окна, cw_" в главе 1.
Width: Начальная шиpина окна (в единицах устpойства).
Height: Начальная высота окна (в единицах устpойства).
WndParent: Окно владельца.
Menu: Идентификатоp меню или дочеpнего окна.
Instance: Экземпляp соответствующего модуля.
Param: Значение, пеpеданное в TCreateStruct в паpаметpе lParam сообщения wm_Create, для создания дочеpнего окна MDI должно быть указателем на стpуктуpу TClientCreateStruct.
Возвpащаемое значение:
В случае успешного завеpшения - идентификатоp окна; 0 - в пpотивном случае.
функция находится в файле user32.dll
Теперь надо сделать компонент, как я понимаю, Что ж, сейчас посмотрю другие pas'ы, попробую что-нить сворганить. Сразу вопрос: как сделать так, чтоб мой компонент был "на правах" hiMainForm? Т.е. чтобы мой компонент заменял МаинФорм?
карма: 0

0
14
Сообщение
...
Прикрепленные файлы
(файлы не залиты)