| Автор
| Сообщение |
Steel FedeX
Частый гость

Возраст: 26
Знак зодиака: 
Зарегистрирован: 13.09.2005
Сообщения: 48
Откуда: Житомир, Украина
|
|
|
Цитата |
|
Привет! Пишу прожку которая должна сидеть в трее. Использую только WinApi (чтобы памяти меньше занимала). И вообще пишу в среде "Странник" на Паскалике...
У меня сразу несколько вопросов.
Вопрос первый:
Почему может не работать функция TrackPopupMenu? Вообще-то она работает, но после щелчка мышью вне меню, оно (меню) не исчезает. Вот. Функцию использую в таком виде:
TrackPopupMenu(popupMenu,TPM_LEFTALIGN or TPM_LEFTBUTTON,pnt.x,pnt.y,0,hwindow,nil);
Последний параметр пробовал заменить на область в которой отображается меню - безрезультатно.
Вопрос второй:
Насколько я понимаю кроме стандартных диатогов выбора файлов, шрифтов и пр. есть ещё и стандартный диалог выбора папок (такой продолговатый с деревом каталогов). Как его отобразить? (Только WinApi).
Вопрос третий: (одно из трёх)
Как иконку (произвольного размера) вывести в контекст причём масштабируя ?
Как иконку превратить в BITMAP ?
Как иконку назначить пункту всплывающего меню меню ?
Условия: Имеется только хандл иконки. Нельзя пользоваться никакими обьектами - только WinApi.
Вопрос четвёртый:
Почему в командной строке программы то появляются скобки то исчезают ?!!
Можно ли узнать путь к своей программе какой-то стандартной Api функцией. Или только через командную строку?
Хм-м-м... Наверное достаточно на сегодня.
Заранее спасибо! _________________ Я всё могу! ...но сегодня не успею. |
|
| В начало |
|
 |
|
|
 |
 Шурик
Я живу тут....

Возраст: 42
Знак зодиака: 
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
|
|
|
Цитата |
|
Ответов тебе не дам, но предложу одно суждение -- попробуй покопаться в Борландовских исходниках соответствующих компонентов. Они в этом уже давно рабобрались. Ведь по сути ты повторяешь их только в урезаном варианте.
Ещё одно. Ты слыхал про KOL/MCK -- облегчённый вариант VCL. Посмотри, может тебе этого будет достаточно.
| Цитата: | | Почему в командной строке программы то появляются скобки то исчезают ?!! |
Это ты о двойных кавычках? Они ставятся для имён файлов, содержащих пробелы.
| Цитата: | | Можно ли узнать путь к своей программе какой-то стандартной Api функцией. Или только через командную строку? |
Мне кажется только так и делают. Погляди реализацию ParamStr(). А что тебя тут смущает?
| Цитата: | | Как иконку превратить в BITMAP ? |
Ну, видимо нарисовать её на этом bitmap-е (см.CreateCompatibleDC,SelectObject)
| Цитата: | | Как иконку (произвольного размера) вывести в контекст причём масштабируя ? |
DrawIconEx ?
| Цитата: | | Как иконку назначить пункту всплывающего меню меню ? |
Мне кажется туда можно назначать только bitmap-ы и элементы ImageList.
Как говорил наш преподаватель философии "Читайте первоисточники". Борландовские первоисточники. _________________ Ответ готов, готов ли твой вопрос? |
|
| В начало |
|
 |
Steel FedeX
Частый гость

Возраст: 26
Знак зодиака: 
Зарегистрирован: 13.09.2005
Сообщения: 48
Откуда: Житомир, Украина
|
|
|
Цитата |
|
Отлично! Спасибо.
TrackPopupMenu нашол в нестандартных компонентах(как я сам не догадался!).
Правда ещё не понял почему у меня не работает...
А насчёт диалога - вроде бы только-что нашол:
SHBrowseForFolder и SHGetPathFromIDList. Правда, ещё не проверял.
| Цитата: | | Ещё одно. Ты слыхал про KOL/MCK -- облегчённый вариант VCL. Посмотри, может тебе этого будет достаточно. |
Слыхал и юзал. Но если приложение с пустой формой на KOL/MCK весит около 60кг, то аналогичное приложение написанное на WinApi и скомпилированное на Страннике весит около 4кг!!! Я, конечно, не хочу сказать, что Странник очень удобная среда...  _________________ Я всё могу! ...но сегодня не успею. |
|
| В начало |
|
 |
Steel FedeX
Частый гость

Возраст: 26
Знак зодиака: 
Зарегистрирован: 13.09.2005
Сообщения: 48
Откуда: Житомир, Украина
|
|
|
Цитата |
|
А ведь функций SHBrowseForFolder и SHGetPathFromIDList нигде в делфе не описано... Только в SDK.
Так что если кому понадобится диалог выбора папок-
вот.Корявенький компонентик,но работает.
А в ParamStr действительно нашол функцию GetModuleFileName,которая даёт имя моей проги.
TrackPopupMenu нужно использовать вместе с SetForegrounWindow-тогда всё работает нормально.
Только с иконкми всё ещё куча проблем... _________________ Я всё могу! ...но сегодня не успею. |
|
| В начало |
|
 |
 Gelios
Oracle-вый маньяк, Админ

Возраст: 37
Знак зодиака: 
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
|
|
|
Цитата |
|
| Код: | | А ведь функций SHBrowseForFolder и SHGetPathFromIDList нигде в делфе не описано... | потому что это функции вин апи а не rtl delphi  _________________ нельзя давать всем всего, ибо всех много, а всего мало |
|
| В начало |
|
 |
Steel FedeX
Частый гость

Возраст: 26
Знак зодиака: 
Зарегистрирован: 13.09.2005
Сообщения: 48
Откуда: Житомир, Украина
|
|
|
Цитата |
|
Так я имел в виду, что этих функций в модулях Windows и ShellApi не описано. При чём здесь rtl? _________________ Я всё могу! ...но сегодня не успею. |
|
| В начало |
|
 |
 Ktf
Администратор

Возраст: 32
Знак зодиака: 
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
|
|
|
Цитата |
|
Эти функции описаны в модуле ShlObj _________________ Пойду посплю перед сном. |
|
| В начало |
|
 |
|