Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сделать панель такую же, как панель задач в Винде. [Win95/98, WinME, NT4, Win2k]


Дмитрий Демиденков ©   (2001-10-30 15:46:00) 

Привет, народ.
Как мне сабж реализовать подскажите. Нужна панелька которая могла бы оттяпать кусок десктопа у других приложений. Как это делают, например, панель задач виндовая или панель MS Office,когда не находятся в режиме автоматического убирания с экрана. Так же ведут себя всякие разные SpediaBarы.
Очень надо. Вот.


Дмитрий Демиденков   (2001-11-01 23:43:00) [1]

Только нашел время заняться. Короче проблема возникла. Как то не корректно это работает. Приходится вначале выделять пространство под AppBar, потом делать задержку и только потом MoveWindow. Если не делаешь задержки, то окно может не оказаться там где должно быть.
Кроме того не совсем понятно для каких целей используется APPBARDATA.uCallbackMessage. Оно в мое приложение не разу не вернулось.
Мож что я не понял.


Jurgen   (2001-11-01 16:38:00) [2]

2delphinum
ДО загрузки своей формы сохрани размеры десктопа
SystemParametersInfo(SPI_GETWORKAREA, 0, @DeskRect, 0);
...
устанавливаешь свои размеры
...
При выгрузке восстанови их назад
SystemParametersInfo(SPI_SETWORKAREA, 0, @DeskRect, SPIF_SENDWININICHANGE);
Вот, собственно, все...



delphimun   (2001-11-01 13:18:00) [3]

Я уже разобрался просто изменив разрешение, а потом поставил его обратно, но всё-же интересно, как это сделать с помощю делфи(когда я изменяю размер десктопа твоим методом то не чего не происходит(больше не делает)


delphimun   (2001-11-01 13:13:00) [4]

Jurgen ©: оно просто уменьшило rect моего desctopa и не увеличивает обратно


delphimun   (2001-11-01 13:11:00) [5]

Jurgen ©: Это конешно интересно, что твой метод сделал с рабочим столом, ну а как же теперь сделать обратно?


Jurgen   (2001-11-01 11:22:00) [6]

Привет.
2Дмитрий Демиденков
1.Jurgen, кстати, а почему это не поддерживается NT
В хелпе написано Only Win95. Я проверял под 98-ми - работает, под NT нет возможности проверить.

2.не понятно как засунуть свое приложение в это ограниченную область.
Вопрос стоял: Нужна панелька которая могла бы оттяпать кусок десктопа у других приложений. - Вариант реализации я дал.
Принцип: Создаешь свою форму со всякими там кнопочками, менюшками и т.д.
(Можно кинуть на форму TRxSpeedBar.alClient - и не думать). Форму делаешь без заголовка, задаешь Height, Width. Затем определяешь ее местоположение (допустим, слева), => задаешь Left := Screen.Width - Form.Width и Top := 0;
А потом вызываешь функцию, описанную мной ранее, где Rect- Form.BoundsRect. Ну и дальше всякие навороты...
Результат: свой TaskBar и уменьшенный Desktop

Удачи. Да прибудет с тобой F1.


Дмитрий Демиденков   (2001-11-01 11:22:00) [7]

:))))))))
:)))))))
Да... Надо меньше пить... Надо же было прочитать "Now" как "Not" :)))
Спасибо. Проверю. Попробую.


  (2001-11-01 09:49:00) [8]

Now Supported on Windows NT - Сейчас поддерживается в Windows NT


Дмитрий Демиденков   (2001-11-01 09:40:00) [9]

Jurgen, кстати, а почему это не поддерживается NT. Об этом вроде не сказано, не где. Если это работает, то хорошо, однако не понятно как засунуть свое приложение в это ограниченную область.


Дмитрий Демиденков   (2001-11-01 09:31:00) [10]

Polevi, спасибо и тебе, но это тоже не подходит.

... из Win32 Developer"s Reference ...

SHAppBarMessage
-----------------------------
[Now Supported on Windows NT]
...
Неужели нет ничего похожего для НАТАЛИ.


Дмитрий Демиденков   (2001-11-01 09:22:00) [11]

Jurgen, спасибо за ответ, но я знал про эту фунцию. Мне то вообщеми то нужно под любую ОСь. А скорее всего мое приложение будет пользоваться именно в NT. Это связано с использовениме спец. устройство драйвера под которые разрабатывали вояки и сделали их только для Натахи.
Вот.


Polevi   (2001-10-31 18:00:00) [12]

AppBars


Jurgen   (2001-10-30 18:06:00) [13]

Привет. Лови

var
R: TRect;
begin
R := Rect(Left, Top, Right, Bottom);
SystemParametersInfo(SPI_SETWORKAREA, 0, @R, SPIF_SENDWININICHANGE);
...
end;

Удачи. Да прибудет с тобой F1.
З.Ы. Работает только в Win9x.


Наверх

Титульная страница Поиск, карта сайта Написать письмо