![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Иконка в SysTray не создавая своих окон. [D7, WinXP]
Ascan © (2005-04-11 14:36:00)Если в моей программе Object Pascalнет ниодного окна, то могу ли кинуть иконку в SysTray и обрабатывать по не события?
Иконку кидать получается, но при наведении на нее мышкой иконка пропадает. Возможно, идет проверка на существование окна, описанное при вызове Shell_NotifyIcon...
mgcr (2005-04-18 15:06:00) [1]Piter © (18.04.05 14:54) [50]
Открой http://msdn.microsoft.com, набери в строке поиска HWND_DESKTOP и читай статьи по результатам поиска. И будет тебе счастье.
Piter (2005-04-18 14:54:00) [2]mgcr © (18.04.05 11:20) [46]
Читай вместе с Piter'ом Platform SDK
ну уж коли ты знаешь где читать, может линк кинешь?
Игорь Шевченко (2005-04-18 12:31:00) [3]Размерами меряемся в Потрепаловке
alpet (2005-04-18 12:25:00) [4]Например у меня размер файла резко увеличивается (до 135Кб) при добавлении модуля Classes или использующих его модулей VCL. Так что его лучше не использовать.
alpet (2005-04-18 12:22:00) [5]jobo © (16.04.05 02:45) [41]
Создай заготовку - фaйл test.dpr с текстом:
begin
end.
И скомпилируй его в delphi (из коммандной строки - dcc32 test.dpr).
Размер получившегося test.exe должен быть 8Кб. Если будет больше - видно компилятор слишком много лишнего добавляет - добудь dcc32.exe версии 6.1 (6.0). Потом добавляй юниты и код, и смотри на каком файле размер exe-шника резко увеличится.
mgcr (2005-04-18 11:20:00) [6]Eraser © (16.04.05 15:06) [44]
Ерунду не пиши, договорились ?
Читай вместе с Piter'ом Platform SDK.
Eraser (2005-04-16 15:08:00) [7]Ascan
Что мешает использовать старую-добрую API CreateWindow? зачем изощьрятся с разными "полу-API" ф-ми?
Eraser (2005-04-16 15:06:00) [8]mgcr ©
Piter -> есть гарантии, что так и будет в следующих версиях Windows?
Есть.
Как раз таки гарантий мало... не факт что 1 рабочий стол так будет всегда 1... честно говоря я ожидал, что в Longhorn'e сделают несколько раб. столов... как в линухе.
Eraser (2005-04-16 15:01:00) [9]Piter ©
Ты не прав. Рабочий стол - это GetDesktopWindow.
Ты прав. Но всё таки очень часто 0 - это рабочий стол...
GuAV (2005-04-16 14:38:00) [10]
> Иконка в SysTray не создавая своих окон.
Лёгко. Регистрируешь своё сообщение, берёшь превое попавшееся окно, субкласишь его, в оконной процедуре ловишь своё сообщение, его же задаёшь в uCallbackMessage.
:-)
jobo (2005-04-16 02:45:00) [11]Use Debug DCUs у меня ваще никогда не включался.
пример [24] откомпилированый на Д7 - 87 кб (с $D- тоже самое)
с включеной Use Debug DCUs - 93 кб
как вы ваще умудрились exeшник сделать 9 кб? у мненя самое мальнкое кот былло 15-17 кб (не консольные)
VMcL (2005-04-14 19:29:00) [12]>> alpet © (14.04.05 19:21) [39]
> флажок "Use Debug DCUs"
Это влияет, причём доволно значительно. Согласен - забыл.
alpet (2005-04-14 19:21:00) [13]Влияет, хотя и довольно слабо.
Точнее влияние на размер оказывает какая версия VCL используется - отладочная или обычная (флажок "Use Debug DCUs")
Вот например достаточно сложный мой проект (VCL) с отключенной опцией информацией весит 1188352 байт, а с включенной 1296896 байт.
----------------------------------------------------------------
Для приведеннего примера и в самом деле никакок влияния эти опции не имеют.
VMcL (2005-04-14 19:03:00) [14]>> alpet © (14.04.05 18:21) [37]
> 1. Надо компилить без отладочной информации. Например для этого можно добавить директиву {$D-} в начале программы, или в настройках проекта (вызывается по Ctrl-Shift) на вкладке Compiler поснимать все флажки в разделе Debugging
Не городите чушь. На размер бинарника это не влияет. Единственное, связанное с отладочной информацией, что влияет на его размер - это Project Options | Linker | Include TD32 debug info
alpet (2005-04-14 18:21:00) [15]> на Д7 получается 85 кб, может настройки какие поменять нада?
1. Надо компилить без отладочной информации. Например для этого можно добавить директиву {$D-} в начале программы, или в настройках проекта (вызывается по Ctrl-Shift) на вкладке Compiler поснимать все флажки в разделе Debugging.
2. Убрать все модули из uses которые не используются в программе.
mgcr (2005-04-14 18:18:00) [16]Piter © (14.04.05 18:13) [35]
MS конечно. Читай Platform SDK.
Piter (2005-04-14 18:13:00) [17]mgcr © (14.04.05 10:58) [32]
Есть.
кто об этом сказал?
jobo (2005-04-14 15:05:00) [18]2alpet:
на Д7 получается 85 кб, может настройки какие поменять нада?
alpet (2005-04-14 11:16:00) [19]jobo © (13.04.05 18:26) [30]
> только скажи как ты экзешник в 9 кб получил?
Скомпилировал весь пример в Delphi 6 (в седьмой должен быть такой же результат). Кстати если его запаковать UPX - будет 6Кб. На ассемблере подобный пример можно наверное и в 2кб уместить, только стоит ли стараться.
mgcr (2005-04-14 10:58:00) [20]Piter © (13.04.05 18:37) [31]
> есть гарантии, что так и будет в следующих версиях Windows?
Есть.