|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.06.2007, 11:39 | #1 |
Форумчанин
Регистрация: 20.06.2007
Сообщений: 144
|
Как создать программу-панель (как панель Msoffice), чтобы была поверх всех окон
Хочу создать программу-панель, типа панели запуска MSOffice в Office 97 или типа панели задач (меню "пуск"), чтобы она не загораживала ярлыки на рабочем столе, а как бы являлась его частью (находясь при этом справа, или слева, или сверху рабочего стола). Помогите, столько всего пересмотрел, ничего не могу найти.
|
21.06.2007, 12:19 | #2 |
python developer
Пользователь Подтвердите свой е-майл
Регистрация: 30.11.2006
Сообщений: 81
|
Укажи в свойствах формы (top, left, position, height, width) где и как она должна отображаться.
Границы расширяет тот, кто выходит за них.
|
21.06.2007, 12:29 | #3 |
Форумчанин
Регистрация: 20.06.2007
Сообщений: 144
|
Да саму-то форму-панель я уже сделал. А вот сделать так, чтобы она не загораживала значки на рабочем столе, а как бы заставила уменьшить рабочее пространство на desktope - вот это проблема. Я просто путем не могу объяснить... чего хочу добиться... Пример: попробуй щелкнуть на панели задачь (там где "Пуск") правой клавишей и выбери там "Панели инструментов - Создать...", выбери любую папку. Панель создастся на панели задач. Потом щелкни правой клавишей опять на панели задач и убери галочку "закрепить панель задач". Перетащи созданную панель, "схватив" за подпись (название) панели, например, вверх. Щелкни на ней правой клавишей и поставь галочку "Поверх остальных окон". А теперь попробуй развернуть любое окно, например, проводник, на весь экран - он ее не загородит а встанет с ней в стык. Вот этого эффекта я хочу добиться со своей программой.
|
21.06.2007, 17:29 | #4 |
Регистрация: 07.05.2007
Сообщений: 4
|
Хм... Вероятно нужно иконки как-то сдвигать. Такое возможно, но вот как - этого я не знаю.
|
22.06.2007, 05:59 | #5 |
python developer
Пользователь Подтвердите свой е-майл
Регистрация: 30.11.2006
Сообщений: 81
|
Для отображения формы поверх всех окон используй api функцию SetWindowPos () - например:
На FormCreate кинь это: with form1 do SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
Границы расширяет тот, кто выходит за них.
|
22.06.2007, 10:48 | #6 |
Форумчанин
Регистрация: 18.04.2007
Сообщений: 135
|
Так...ну судя по всему нужно брать хэндл ListView рабочего стола и поиграть с его размерами, т.е когда появляется твоя панелька слева, то уменьшить ширину на ширину панели и сдвинуть вправо...
Вот такой вот изврат) Скорее всего это делается по другому, но это первое мнение |
27.06.2007, 17:23 | #7 |
Форумчанин
Регистрация: 20.06.2007
Сообщений: 144
|
Хендл рабочего стола я взял
function GetDesktopListViewHandle: THandle; var S: String; begin Result := FindWindow('ProgMan', nil); Result := GetWindow(Result, GW_CHILD); Result := GetWindow(Result, GW_CHILD); SetLength(S, 40); GetClassName(Result, PChar(S), 39); if PChar(S) <> 'SysListView32' then Result := 0; end; А кокое сообщение нужно послать, чтобы изменить размер sendmessage(GetDesktopListViewHandl e, LWM_????,?????,????) |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поверх всех окон | delphin100 | Общие вопросы Delphi | 2 | 19.04.2008 19:00 |
Поверх всех окон | Патрон | Общие вопросы Delphi | 1 | 18.04.2008 16:57 |
форму поверх всех окон | КатенокСПб | Общие вопросы Delphi | 2 | 26.07.2007 17:48 |
Форма поверх всех окон. | Kamikadze_666 | Общие вопросы Delphi | 1 | 16.05.2007 07:10 |
чекбокс - поверх всех окон | puz | Компоненты Delphi | 6 | 11.05.2007 17:58 |