Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.07;
Скачать: CL | DM;

Вниз

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

 
Дмитрий Демиденков   (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. Оно в мое приложение не разу не вернулось.
Мож что я не понял.



Страницы: 1 вся ветка

Текущий архив: 2002.02.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-18836
Ser_Kham1
2002-01-21 16:56
2002.02.07
StringGrid


3-18712
Bura
2002-01-10 00:44
2002.02.07
IB


7-19009
Wonder
2001-10-29 11:35
2002.02.07
stdin/stdout


3-18690
cyberwarlock
2002-01-09 08:07
2002.02.07
Вопрос по Paradox


3-18693
HydraMarat
2002-01-08 23:21
2002.02.07
Поиск через SQL