Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];




Вниз

Сделать панель такую же, как панель задач в Винде. 


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

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



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

Привет. Лови

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

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



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

AppBars



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

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



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

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

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

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



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

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



  (2001-11-01 09:49) [6]

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



Jurgen   (2001-11-01 11:22) [7]

Привет.
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) [8]

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



delphimun   (2001-11-01 13:11) [9]

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



delphimun   (2001-11-01 13:13) [10]

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



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

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



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

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




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

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




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.025 c
3-18741           Andrey007             2001-12-29 10:31  2002.02.07  
Вопрос по Query.Locate.


7-19004           Genik                 2001-10-25 10:13  2002.02.07  
Панель задач


1-18883           mapnn                 2002-01-19 15:16  2002.02.07  
Как получить список ещё не созданных форм в Run Time?


4-19026           Fredy314              2001-12-11 14:22  2002.02.07  
Как можно перехватить Копирование/вставку в буфер.


7-19000           Lizard                2001-10-30 20:34  2002.02.07  
Как перехватить сообщения об ошибках типа Autefication failed и т.д. при отправке письма ?