Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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. Оно в мое приложение не разу не вернулось.
Мож что я не понял.



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

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

Наверх




Память: 0.47 MB
Время: 0.005 c
1-18886
sd
2002-01-23 13:51
2002.02.07
TAction


3-18704
dim-
2002-01-09 12:35
2002.02.07
FreeReport


1-18856
avr555
2002-01-22 17:02
2002.02.07
Вызвать событие


14-18971
EternalWonderer
2001-12-19 09:42
2002.02.07
Администрирование СУБД Oracle


4-19027
YUS
2001-12-10 19:08
2002.02.07
PostMessage





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский